Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Json & perl

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

LonelyRanger

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Здравствуйте.  
Помогите разобраться с ответами сервера на json.
Пишу скрипт на perl, который должен обрабатывать информацию с сайта. Сайт через некоторый API может выдавать следующие ответы:
 
одиночное значение

Код:
{"took":22,"timed_out":false,"_shards":{"total":2,"successful":2,"failed":0},"hits":{"total":1,"max_score":1.0,"hits":[{"_index":"pamyat_2016_06_26","_type":"page_document","_id":"100647393","_score":1.0,"_source":{"operation":"I","source_id":100647393,"id":100647393,"delo_id":0,"document_id":100646098,"position":1,"list":null,"secr":"ns","censor":null,"image_path":"Передача_050_КП097Р_С45/213-0002002-0513/00000002.JPG","action":"I"}}]}}

и множественное значение  

Код:
{"took":24,"timed_out":false,"_shards":{"total":2,"successful":2,"failed":0},"hits":{"total":6,"max_score":1.0,"hits":[{"_index":"pamyat_2016_06_26","_type":"page_document","_id":"238946056","_score":1.0,"_source":{"operation":"I","source_id":238946056,"id":238946056,"delo_id":0,"document_id":238946051,"position":33,"list":null,"secr":"ns","censor":null,"image_path":"Передача 07/213-0002002-0729/00000034.jpg","action":"U"}},{"_index":"pamyat_2016_06_26","_type":"page_document","_id":"238946052","_score":1.0,"_source":{"operation":"I","source_id":238946052,"id":238946052,"delo_id":0,"document_id":238946051,"position":29,"list":null,"secr":"ns","censor":null,"image_path":"Передача 07/213-0002002-0729/00000030.jpg","action":"U"}},{"_index":"pamyat_2016_06_26","_type":"page_document","_id":"238946054","_score":1.0,"_source":{"operation":"I","source_id":238946054,"id":238946054,"delo_id":0,"document_id":238946051,"position":31,"list":null,"secr":"ns","censor":null,"image_path":"Передача 07/213-0002002-0729/00000032.jpg","action":"U"}},{"_index":"pamyat_2016_06_26","_type":"page_document","_id":"238946053","_score":1.0,"_source":{"operation":"I","source_id":238946053,"id":238946053,"delo_id":0,"document_id":238946051,"position":30,"list":null,"secr":"ns","censor":null,"image_path":"Передача 07/213-0002002-0729/00000031.jpg","action":"U"}},{"_index":"pamyat_2016_06_26","_type":"page_document","_id":"238946055","_score":1.0,"_source":{"operation":"I","source_id":238946055,"id":238946055,"delo_id":0,"document_id":238946051,"position":32,"list":null,"secr":"ns","censor":null,"image_path":"Передача 07/213-0002002-0729/00000033.jpg","action":"U"}},{"_index":"pamyat_2016_06_26","_type":"page_document","_id":"238946057","_score":1.0,"_source":{"operation":"I","source_id":238946057,"id":238946057,"delo_id":0,"document_id":238946051,"position":34,"list":null,"secr":"ns","censor":null,"image_path":"Передача 07/213-0002002-0729/00000035.jpg","action":"U"}}]}}

Мне нужно обратиться к переменной "image_path" и взять её значение, причем, если множественное значение, то нужно их все перебрать.
Пытался использовать модуль JSON::XS, но так и не понял как обратиться к этой переменной - уж больно всё сильно вложено...

Всего записей: 42 | Зарегистр. 04-03-2008 | Отправлено: 13:42 06-08-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LonelyRanger

Цитата:
уж больно всё сильно вложено

да нет тут ничего сильно вложенного
 
{} - объект/хэш
[] - массив
 

Цитата:
и множественное значение

не совсем корректная запись, там должны быть еще [ перед всем и ] после всего. либо обрезали сами как то.
 

Цитата:
{"took":22,"timed_out":false,"_shards":{"total":2,"successful":2,"failed":0},"hits":{"total":1,"max_score":1.0,"hits":[{"_index":"pamyat_2016_06_26","_type":"page_document","_id":"100647393","_score":1.0,"_source":{"operation":"I","source_id":100647393,"id":100647393,"delo_id":0,"document_id":100646098,"position":1,"list":null,"secr":"ns","censor":null,"image_path":"Передача_050_КП097Р_С45/213-0002002-0513/00000002.JPG","action":"I"}}]}}

 
$var->{hits}->{hits}->[0]->image_path
не проверял, давно с перлом не работал

Всего записей: 15101 | Зарегистр. 20-09-2014 | Отправлено: 22:50 07-08-2016
LonelyRanger

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
 не совсем корректная запись, там должны быть еще [ перед всем и ] после всего. либо обрезали сами как то.  

Как получил ответ, так его и написал.

Цитата:
 $var->{hits}->{hits}->[0]->image_path  

Благодарю, и сам разобрался уже. Примерно также получилось. Просто было не понятно для первого раза, вот и возникли сложности в понимании.

Всего записей: 42 | Зарегистр. 04-03-2008 | Отправлено: 15:07 22-08-2016
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » Json & perl


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru