如何使用php解析json数据我想解析formattedAmount和currencyCode
我想使用php foreach循环解析格式化的Amount和currencyCode 我的代码给出错误:-如何使用php解析json数据我想解析formattedAmount和currencyCode,php,json,foreach,Php,Json,Foreach,我想使用php foreach循环解析格式化的Amount和currencyCode 我的代码给出错误:-试图获取非对象的属性 代码是 "deals": [ { "soldQuantity": 1000, "shippingAddressRequired": false, "options": [ { "value": { "formattedAmount":
试图获取非对象的属性
代码是
"deals": [
{
"soldQuantity": 1000,
"shippingAddressRequired": false,
"options": [
{
"value": {
"formattedAmount": "$43.78",
"currencyCode": "USD",
"amount": 4378
},
},
],
},
]
因为
交易
和选项
的值是数组,所以您需要说:
$json = file_get_contents('../jsonfile/product.json');
$json_string = json_decode($json);
foreach($json_string->deals as $mydata)
{
foreach($mydata->options->value as $option)
{
echo $option->;
}
}
顺便说一下,您的json格式很差。数组后面不应该像选项
数组那样有逗号。这本身就会给你带来麻烦
这里实际上不需要使用foreach
,因为deals
数组中只有一个值,而options
数组中只有一个值。不要使用foreach($mydata->options->value as$option)
,因为值不是数组。
做:
包含实际的错误消息可能会有帮助。这是一些看起来很可怕的JSON。@user3719363,该JSON是不合法的。谢谢你的回答,但我尝试了一下,它也给出了上面同样的错误:-尝试获取非对象的属性编辑了我的回答,这样你就会明白我的意思你好,yaniv有很多选项,每个选项都包含多个值数组包含多个值如果我只需要1rst数组值,我会做什么谢谢你的回答。不,它们不是一个,另一个是它再次给出错误:不能将stdClass类型的对象用作数组in@user3719363,是的,您列出的数组中只有一个值。它说错误发生在哪个行号?您已将错误消息的结尾截断。
foreach($mydata->options[0]->value as $option)
foreach($mydata->options as $option) {
echo $option->value->formattedAmount;
echo $option->value->currencyCode;
echo $option->value->amount;
}