尝试解析此 json 文件并将其存储在 php 中

Trying to parse this json file and store it in php

我正在尝试解析此 json 文件,但我无法将其作为数组存储在 php 中。我在访问 json 文件的对象时遇到问题,因为我收到“非法字符串偏移量 'name' 错误。

我的代码如下:

这是我的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 = json_decode($json, true);

这会将 json 转换为关联数组

然后尝试:

echo $json_data['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

<?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 文件。

希望对您有所帮助。