2016-01-15 2 views
0

Это мой JSONКак правильно подсчитать содержание json?

[ 
    {"id":"1736375","first_name":"fname1","force_first_name":"ffname1","last_name":"lname1","thumb_path":"","path":"img\/profiles\/generic\/gray.png"}, 
    {"id":"1607011","first_name":"fname2","force_first_name":"ffname2","last_name":"lname2","thumb_path":"","path":"img\/profiles\/generic\/gray.png"}, 
    {"id":"1607012","first_name":"fname3","force_first_name":"ffname3","last_name":"lname3","thumb_path":"","path":"img\/profiles\/generic\/gray.png"} 
] 

Я пытаюсь подсчитать количество наборов внутри []

Я попытался с помощью этого

echo count(json_decode($people, true)); 

я получаю ноль (0) результат.

Как правильно считать его.

Благодаря

=== РЕДАКТИРОВАТЬ РАДИ БУДУЩЕГО VIEWER ===

это JSON, который имеет некорректный формат, как указано несколько замечаний, код я писал выше, как я это вижу, но реальное содержание было это JSON

string(3)" 
[ 
    {"id":"1736375","first_name":"fname1","force_first_name":"ffname1","last_name":"lname1","thumb_path":"","path":"img\/profiles\/generic\/gray.png"}, 
    {"id":"1607011","first_name":"fname2","force_first_name":"ffname2","last_name":"lname2","thumb_path":"","path":"img\/profiles\/generic\/gray.png"}, 
    {"id":"1607012","first_name":"fname3","force_first_name":"ffname3","last_name":"lname3","thumb_path":"","path":"img\/profiles\/generic\/gray.png"} 
]" 

как указал @dontpanic, строка будет всегда возвращать 1, которая является то, что я получаю. Я сообщил о проблеме разработчику, и, к счастью, они исправили ответ json, и теперь он работает нормально.

Спасибо всем, кто попытался прокомментировать, что привело к обнаружению проблемы.

+1

Try witought json_decode, потому что мне кажется, что у вас есть массив с JSON закодированные элементов –

+1

Я код и получил 3. Вы уверены, что '$ people' содержит JSON показан в вашем вопросе? –

+1

@KA_lin, это допустимый массив JSON. –

ответ

2

Используя этот точный код, я получаю желаемый результат 3, а также другие комментарии выше. Я бы рекомендовал отладку переменной $people, чтобы убедиться, что она остается объектом json до конца вашего заявления echo, так как вполне возможно, что оно либо искажается, либо изменяется вместе, поэтому дает неожиданные результаты.

<?php 
$people = <<<EOD 
[ 
    {"id":"1736375","first_name":"fname1","force_first_name":"ffname1","last_name":"lname1","thumb_path":"","path":"img\/profiles\/generic\/gray.png"}, 
    {"id":"1607011","first_name":"fname2","force_first_name":"ffname2","last_name":"lname2","thumb_path":"","path":"img\/profiles\/generic\/gray.png"}, 
    {"id":"1607012","first_name":"fname3","force_first_name":"ffname3","last_name":"lname3","thumb_path":"","path":"img\/profiles\/generic\/gray.png"} 
] 
EOD; 

echo count(json_decode($people, true)); 
+0

Вот фактический результат, который я загрузил на тестовый сервер. http://pebz.starpixel.net/json/count.php \t $ people = $ breeze-> url ("json url") ; \t счетчик эхо (json_decode ($ люди, правда)); \t эхо "


'; \t var_dump ($ people); – Wayne

+0

ooppss .. извините. похоже, не может писать код в комментариях.im пытается вставить код, который я использую, и URL-адрес вывода – Wayne

0

Try:

echo count(json_decode(stripslashes($people), true)); 
+0

получил код от [здесь] (http://stackoverflow.com/a/17928258/2079537) –

+0

все еще получил нуль :(проверить этот результат http: // pebz.starpixel.net/json/count.php – Wayne