Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用php解析json数据我想解析formattedAmount和currencyCode_Php_Json_Foreach - Fatal编程技术网

如何使用php解析json数据我想解析formattedAmount和currencyCode

如何使用php解析json数据我想解析formattedAmount和currencyCode,php,json,foreach,Php,Json,Foreach,我想使用php foreach循环解析格式化的Amount和currencyCode 我的代码给出错误:-试图获取非对象的属性 代码是 "deals": [ { "soldQuantity": 1000, "shippingAddressRequired": false, "options": [ { "value": { "formattedAmount":

我想使用php foreach循环解析格式化的Amount和currencyCode

我的代码给出错误:-
试图获取非对象的属性

代码是

    "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;
}