我确实有复杂的json变量。我想解析并获取数据到php。
我尝试了从json数组中获取数据的所有可能方式
$productDetails =
[
{
"product":{"age":"","breed":"","category":{"name":"Animal Food"}, "country":{"name":"Qatar"}, "couriercharge":"23.00 AED",
"dateTime":"2019-04-10T04:05:45.405Z",
}}
$json_details = json_decode($productDetails);
echo $json_details->couriercharge;
echo $json_details->category->name;
我想获取快递费用和姓名的详细信息
答案 0 :(得分:3)
欢迎堆栈溢出。
第一项业务,示例JSON无效。 PHP json_decode()应该失败并出现错误。正确的JSON如下:
[{
"product": {
"age": "",
"breed": "",
"category": {
"name": "Animal Food"
},
"country": {
"name": "Qatar"
},
"couriercharge": "23.00 AED",
"dateTime": "2019-04-10T04:05:45.405Z"
}
}]
第二项:如何访问couriercharge
以及与此相关的任何其他键/值对。您使用json_decode()处于正确的轨道。
$var_name = jsone_decode($json_string)
将有价值的JSON转换为PHP stdClass对象。从那里应该可以使用箭头符号遍历结构树。
echo $var_name[0]->product->couriercharge
如果您具有适当的调试器功能,它将对您有很大的帮助;因为您可以在执行期间停止程序并在过程中检查值变量。
希望这会有所帮助,再次欢迎您使用Stack Overflow。
答案 1 :(得分:1)
您的JSON格式不正确,其结尾缺少右括号,
您需要传递true
参数以使其成为数组
$productDetails =
'{
"product":
{
"age":"",
"breed":"",
"category":
{
"name":"Animal Food"
},
"country":
{
"name":"Qatar"
},
"couriercharge":"23.00 AED",
"dateTime":"2019-04-10T04:05:45.405Z"
}
}';
$jsonToarray = json_decode($productDetails, true);
echo $jsonToarray['category']['name']
echo $jsonToarray['couriercharge'];