2016-10-26 5 views
2

Я декодировал массив JSON, содержащий ключи и значения в PHP. JSON выглядит следующим образом (укороченный для облегчения понимания):Пытается прочитать объект StdClass в PHP

[{"code":"123"},{"identification":"Some item"},{"price":"$20"}] 

После того как я json_decode полукольца, он выглядел следующим образом:

Array ([0] => stdClass Object ([code] => 123) [1] => stdClass Object ([identification] => Some item) [2] => stdClass Object ([price] => $20)) 

Как я могу прочитать ключ и значение ?

Я уже пытался искать на SO всем и уже пытался что-то вроде этого:

foreach ($jarray as $key) { 
    echo 0->$key; 
} 

, который выдает ошибку (ISE) 500.

также попытался это:

foreach ($jarray as $key => $value) { 
    echo $key; 
    echo $value; 
} 

, который также выбрасывает ошибку 500.

Я не знаю, как это сделать ...

EDIT: В принципе, я просто хочу, чтобы перебирать корыто все это и получить ключ и значение каждый раз, как это:

code - 123 
identification - Some item 
price - $20 
... 
+0

добавить 'true' в качестве второго параметра в файл' json_decode() '' называют – bassxzero

+0

$ key' массив/объект, поэтому вы не можете просто повторить его. Если бы вы просмотрели свои журналы, вы бы увидели, что «массив преобразован в строку» или «Объект класса stdClass не может быть преобразован в строку» – aynber

+0

Да, эта строка json говорит, что у вас есть массив '[]' of объекты. '$ jarray [0]' имеет один ключ 'code' со значением' "123" '..' $ jarray [0] -> code; // 123' – Blake

ответ

1
$json = '[{"code":"123"},{"identification":"Some item"},{"price":"$20"}]'; 
$jarray = json_decode($json, true); 

foreach ($jarray as $value) { 
    foreach ($value as $key => $val) { 
     echo $key; 
     echo $val; 
    } 
} 
+0

Ничего себе! Прекрасно работает. Спасибо, что помогли мне. – Fusseldieb

+0

И я не получаю спасибо ..... – bassxzero

+0

@bassxzero Этот код отлично работал бы без преобразования в массив вместо объекта на 'json_decode()' – Blake

0
I hope so it will reduce loop process confusion and simple to do this task. 


$text = '[{"code":"123"},{"identification":"Some item"},{"price":"$20"}]'; 
$array = json_decode($text);**strong text** 
foreach($array as $value) 
{ 
    $array = (array)$value; 
    $x = each($array); 
    echo $x['key']; 
    echo "====>>>>"; 
    echo $x['value']; 
    echo "<br/>"; 
} 
+0

Как ваш ответ лучше, чем принятый ответ выше? – jhhoff02

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