2014-10-29 2 views
-1

Я JSon так:Как получить значения json-массива в php?

{ 
    "Products": [ 
     { 
      "_id": 1 
      .... 
     }, 
     { 
      "_id": 2 
      .... 
     } 
    ] 
} 

И получил это: JSON

$str = file_get_contents($_FILES["uploadFile"]["tmp_name"]); 
     // convert object => json 
     $json = json_encode($str); 
     // convert json => object 
     $decoded = json_decode($json,true); 

Теперь я хочу, чтобы увидеть все _id из Producs. Я использую этот echo $decoded[0]['_id'];, но он ничего не показывает.

Любые идеи?

+0

попытаться напечатать_r результат json_decode. –

+0

yo может попробовать $ decoded ['Products'] ['_ id'] ????, но поместите var_dump ($ str), пожалуйста, –

+0

print_r показывает мой json точно, но $ decoded ['Products'] ['_ id'] показывает ничего –

ответ

2
$decoded = json_decode($json, true); 
echo $decoded['products'][0]['_id']; 

Это декодирует JSON в массив, который вы можете использовать так же, как и любой другой массив в PHP, если у вас есть проблемы с доступом к ценности, а затем просто сделать print_r($decoded) и что должен показать вам свою структуру

Если вы хотите, чтобы перебрать все идентификаторы, а затем просто сделать цикл Еогеасп

foreach($decoded as $inner_array) { 
    foreach($inner_array as $products) { 
     echo $products['_id']; 
    } 
} 

Working demo

+0

Я пробовал их, но ничего не показывал –

+0

@Saeed Сделал небольшое исправление в петле foreach – Ali

+0

Спасибо. Я думаю, что эта часть моего кода '$ json = json_encode ($ str);' была дополнительной, когда я удаляю ее и передаю ее. –

0

вы должны знать, чтобы использовать Quot es на вашей строке json :) ключи и значения. Его не нужно кодировать. строка уже находится в json формате

$str= '{"Products": [{"_id": "1"},{"_id": "2"}]}'; 
$decoded = json_decode($str,true); 

echo $decoded['Products'][0]['_id']; 
Смежные вопросы