Я пытаюсь проанализировать этот файл 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'];
?>
Может ли кто-нибудь помочь мне через это, пожалуйста?
Если вы хотите использовать это в качестве массива, вам нужно будет преобразовать его в него следующим образом:
$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
Вам необходимо использовать:
$json_data = json_decode($json, true);
Это преобразует JSON в ассоциативный массив
А затем попробуйте:
echo $json_data['Data'][0]['name'];
<?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.
Надеюсь, что это поможет вам.