2014-01-23 3 views
0

У меня есть следующие JSON:Access в формате JSON непосредственно без петли

{ 
    "responseHeader":{ 
    "params":{ 
     "facet":"true", 
     "fl":"city", 
     "facet.mincount":"1", 
     "indent":"on", 
     "start":"0", 
     "q":["*:*", 
     "*:*"], 
     "wt":"json", 
     "rows":"12"}}, 
    "response":{"numFound":1,"start":0,"docs":[ 
     {"city":"lathum"}] 
    }, 
    "facet_counts":{ 
    "facet_fields":{ 
     "hasphoto":[ 
     "true",61, 
     "false",5], 
     "hasvideo":[ 
     "false",51, 
     "true",15], 
     "rating_rounded":[ 
     "0.0",62, 
     "10.0",3, 
     "8.0",1]}, 
    "facet_ranges":{}}} 

Интересно, если это возможно, чтобы выбрать значение на основе имени свойства, в моем случае, я хочу, чтобы выбрать, сколько hasphoto имеют значение true, что должно быть 61. Обратите внимание, что значение true необязательно должно быть первым, что указано в списке hasphoto, true и false сортируются по количеству мест.

Я хочу получить значение напрямую, не пропуская его ... это возможно?

Я пробовал:

response.facet_counts.facet_fields['hasphoto']['true'] 

и

response.facet_counts.facet_fields.hasphoto['true'] 

Но оба возвращают undefined.

+0

Вы, вероятно, следует указать, на каком языке вы используете. Поддержка JSON в FORTRAN довольно загадочна. –

ответ

1

Массивы упорядоченные списки, а не ключ-значение хранит так

response.facet_counts.facet_fields.hasphoto[0] дает вам строку «истина», response.facet_counts.facet_fields.hasphoto[1] дает число 61, и т.д ...

+0

Хммм, хорошо, поэтому я попробовал 'inArray' этот' console.log ('index of true:' + $ .inArray ('true', data.facet_counts.facet_fields ['hasphoto'])) ;, но возвращает ' Знаете, почему? – Flo

Смежные вопросы