Попытка разобрать этот файл JSON и сохранить его в переполнении стека

Я пытаюсь проанализировать этот файл JSON, но я не могу сохранить его в виде массива в PHP. У меня возникла проблема с доступом к объектам файла json, когда я получил ошибку «Недопустимое смещение строки».

Мой код выглядит следующим образом:

Это мой JSON:

"{\"Data\":[{\"id\":21,\"name\":\"Parle G\",\"item_code\":\"PG4\"},{\"id\":22,\"name\":\"Dark Fentasy\",\"item_code\":\"DF\"}]}"

Здесь я пытаюсь прочитать файл, но не могу получить доступ к объектам

<?php

// Read JSON file
$json = file_get_contents('results.json');

//Decode JSON
$json_data = json_decode($json);

//print_r($json_data);

echo $json_data[0]['name'];

?>

Может ли кто-нибудь помочь мне через это, пожалуйста?

0

Решение

Если вы хотите использовать это в качестве массива, вам нужно будет преобразовать его в него следующим образом:

$json_data = (array) json_decode($json);

Это позволит получить все поля из JSON в массив PHP:

Array ( [Data] => Array ( [0] => stdClass Object ( [id] => 21 [name] => Parle G [item_code] => PG4 ) [1] => stdClass Object ( [id] => 22 [name] => Dark Fentasy [item_code] => DF ) ) )

В качестве альтернативы вы можете привести данные в объект, так что вам нужно будет получить доступ к таким полям, как $json_data->Data[0]->name

$json_data = (object) json_decode($json);

Узнайте больше в json_decode Документация: http://php.net/manual/en/function.json-decode.php

-1

Другие решения

Вам необходимо использовать:

$json_data = json_decode($json, true);

Это преобразует JSON в ассоциативный массив

А затем попробуйте:

echo $json_data['Data'][0]['name'];
2

<?php

// Read JSON file
$json = file_get_contents('http://192.168.1.100:8080/demo_phonegap/webservices/result.json');

//Decode JSON
$json_data = json_decode($json, true);



echo json_encode($json_data);



?>

Здесь вам нужно установить полный путь к файлу JSON для чтения файла JSON.
и используйте $ json_data = json_decode ($ json, true); расшифровать файл JSON.

Надеюсь, что это поможет вам.

1
По вопросам рекламы [email protected]