Цикл через строку JSON - PullRequest
       4

Цикл через строку JSON

1 голос
/ 07 декабря 2011

Я пытаюсь перебрать строку JSON, используя foreach(). Однако я продолжаю получать следующую ошибку:

"Notice: Trying to get property of non-object". 

Странная часть в том, что когда я копирую и вставляю строку JSON, а затем запускаю foreach(), она работает нормально. Просто, чтобы представить некоторые детали, я использую API Best-Buy.

Поскольку это, похоже, хорошо работает для всех здесь Возможно, что-то не так с данными, которые мне дает лучшая покупка?

Пожалуйста, помогите, я все перепробовал!

ОБНОВЛЕНИЕ извините, что не публикуем код. вот оно:

$info = json_decode($test, true); 
function tagGen($info){
foreach($info as $key => $value){
 }  

Ответы [ 3 ]

1 голос
/ 07 декабря 2011

Так как вы не опубликовали код, мы можем думать, что у вас есть закодированная строка jason. Моя дорогая json-кодированная строка - это что-то вроде формы javascript. И foreach это php loop. Поэтому, если у вас есть строка в кодировке json и вы хотите использовать ее в цикле foreach, для этого вам нужно использовать функцию json_decode .

Когда вы примените json_decode, у вас будет строка из документации

Возвращает значение, закодированное в json в соответствующем типе PHP.

Значения true, false и null (без учета регистра) возвращаются как TRUE, FALSE и NULL соответственно.

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

Для примера кода.

$str=json_decode($yourjson);
foreach($str as $key=>$value)
{}
0 голосов
/ 07 декабря 2011

Напечатайте строку json где-нибудь, чтобы скопировать ее, а затем проверить, является ли она действительной с помощью этого инструмента: http://jsonformatter.curiousconcept.com/

0 голосов
/ 07 декабря 2011

Возможно, вы не используете json_decode в строке JSON. Посмотрите, как бы я это сделал:

$json = "somejsonstring";
$json_array = json_decode($json, true);

foreach($json_array as $element) {
   echo $element['some key'];
}

Обратите внимание на «истинный» второй параметр, данный методу json_decode. Это возвращает ассоциативный массив, а не стандартный объект PHP. Облегчает работу с циклами foreach.

Надеюсь, это поможет, хотя ваш вопрос должен включать пример кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...