2017-07-29 49 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);