如何在解码后从JSON获取数据

时间:2017-07-29 17:09:51

标签: php json decode

从API我得到以下JSON字符串

{  
   "cost":1000.00,
   "cost_ua":25900.44,
   "pay_date":"29-07-2017",
   "payments":{  
      "1":{  
         "tar":"90965",
         "name":"Ввозная ( импортная ) пошлина",
         "basis_value":25900.44,
         "sum_type":"грн.",
         "pay_description":{  
            "name":"Льготная/полная",
            "value":"5.00 %",
            "comments":"ЗУ N 584-VII",
            "document":{  
               "num":"584-VII",
               "date":"19-09-2013"
            }
         }
      },
      "2":{ "name":"Налог на добавленную стоимость ( НДС )" }
   },
   "payments_sum":6734.11,
   "payments_ua_sum":260.00,
   "payments_persent":26.00
}

在json_decode之后我怎么能得到“basis_value”和“comments”? 我试过这个,但它不起作用

$result_parse = json_decode($response);

echo $result_parse->payments->basis_value;
echo $result_parse->payments->1->basis_value;

2 个答案:

答案 0 :(得分:1)

以这种方式尝试:$array->payments->{1}->basis_value 我在 Php Sandbox中进行了测试。我希望它有所帮助。

<?php
        //Enter your code here, enjoy!

$array = json_decode('{  
   "cost":1000.00,
   "cost_ua":25900.44,
   "pay_date":"29-07-2017",
   "payments":{  
      "1":{  
         "tar":"90965",
         "name":"Ввозная ( импортная ) пошлина",
         "basis_value":25900.44,
         "sum_type":"грн.",
         "pay_description":{  
            "name":"Льготная/полная",
            "value":"5.00 %",
            "comments":"ЗУ N 584-VII",
            "document":{  
               "num":"584-VII",
               "date":"19-09-2013"
            }
         }
      },
      "2":{ "name":"Налог на добавленную стоимость ( НДС )" }
   },
   "payments_sum":6734.11,
   "payments_ua_sum":260.00,
   "payments_persent":26.00
}');
echo print_r($array->payments->{1}->basis_value,1);

答案 1 :(得分:1)

请试试这个。

echo $result_parse->payments->{'1'}->basis_value;

Demo