[英]How to get values from json object to php array
我正在为允许用户打印项目报告(使用 fpdf 库)的应用程序编写 php 文件。
目的是从数据库中获取数据,然后动态构建 PDF 文件。
数据存储在 json 中。
几乎所有数据都可以,但有些我无法达到。 这是一个例子:首先,我已经这样做了:
$Array['roof_coordinates'] = json_decode($Array['roof_coordinates'], false);
要获得“A523500”的数字“nb”,我这样做:
$Array['roof_coordinates']->results->packingList->total->A523500->nb;
我究竟做错了什么 ?
"roofCoordinates": {
"results": {
"packingList": {
"total": {
"A523500": {
"ref": "STRA523500",
"nb": 16
},
"A523120": {
"ref": "STRA523120",
"nb": 0
},
"A522100": {
"ref": "STRA522100",
"nb": 8
},
},
}
},
}
我试图将“true”传递给 json_decode 以将对象转换为关联数组,但它似乎不起作用......
任何帮助都会很棒! 先感谢您 ;)
确保您正确访问结果数据结构,无论您解码为数组还是对象,它都应该有效。
<?php
$json = <<<END
{
"roofCoordinates": {
"results": {
"packingList": {
"total": {
"A523500": {
"ref": "STRA523500",
"nb": 16
},
"A523120": {
"ref": "STRA523120",
"nb": 0
},
"A522100": {
"ref": "STRA522100",
"nb": 8
}
}
}
}
}
}
END;
$arrayResults = json_decode($json, true);
$nbFromArray = $arrayResults['roofCoordinates']['results']['packingList']['total']['A523500']['nb'];
$stdClassResults = json_decode($json);
$nbFromStdClass = $stdClassResults->roofCoordinates->results->packingList->total->A523500->nb;
assert($nbFromArray==16, 'Value should equal 16');
assert($nbFromArray==$nbFromStdClass, 'Values from either json_decode method should be equal');
echo 'From array: '.$nbFromArray.PHP_EOL;
echo 'From stdClass: '.$nbFromStdClass.PHP_EOL;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.