2017-07-29 40 views
-2

从API我获得以下JSON字符串如何从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”和“意见”? 我尝试这样做,但它不能正常工作

$result_parse = json_decode($response); 

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

你可以尝试'$ result_parse->付款 - > { '1'} - > basis_value'? – Treast

+1

因为'1'不是PHP中的合法变量名,所以您必须使用'echo $ j-> payments - > {1} - > basis_value;' – RiggsFolly

+0

纠正创建此json字符串的代码会更好一些 – RiggsFolly

回答

1

请试试这个。

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

Demo

+0

这是有效的,我测试了它。但我已经回答了。 –

+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);