2015-06-26 116 views
-3

我想在PHP中使用Code = 10720,但我不能。谢谢。PHP Json数组中的数组

{ 
    "OrderId":"6597943", 
    "ExtOrderId":"ExtOrderId0", 
    "MerchantPosId":"KAMPUSHG", 
    "Status":{ 
     "StatusCode":"OPENPAYU_ERROR_VALUE_INVALID", 
     "Code":"10720", 
     "CodeLiteral":"TRANSACTION_INVALID_PARAMS", 
     "Location":"InstallmentPayment", 
     "StatusDesc":["INVALID_CARD_NO","INVALID_CARD_EXPIRATION_DATE","INVALID_CARD_CVV"] 
    } 
} 
+3

'json_decode()'可以帮助.. –

回答

1
$json = '{ 
      "OrderId":"6597943", 
      "ExtOrderId":"ExtOrderId0", 
      "MerchantPosId":"KAMPUSHG", 
      "Status":{ 
       "StatusCode":"OPENPAYU_ERROR_VALUE_INVALID", 
       "Code":"10720", 
       "CodeLiteral":"TRANSACTION_INVALID_PARAMS", 
       "Location":"InstallmentPayment", 
       "StatusDesc":["INVALID_CARD_NO"] 
      } 
     }'; 

$ar = json_decode($json,true); # json-string to array 

# PHP Version < 7 
$code = isset($ar['Status']['Code'])?$ar['Status']['Code']:'default value'; 

# PHP Version >= 7 
$code = isset($ar['Status']['Code'])??'default value'; 
+0

当您使用json_decode你必须**注意**第二个参数和第四个参数:true来获得数组格式,false为获取对象格式:) – PHPJungle

+0

另请注意第四个参数:如果你想获得** big-int-string **,你需要** JSON_BIGINT_AS_STRING ** @see [默认是在使用json_decode时将大型浮点数转换为浮点数](http ://php.net/manual/en/function.json-decode.php) – PHPJungle

+0

_“你可以成为一名职业球员,你总会有一个12岁的中国孩子比你更好。”_(开玩笑) – Alex

0

使用json_decode()http://php.net/manual/en/function.json-decode.php

$array = '{"OrderId":"6597943","ExtOrderId":"ExtOrderId0","MerchantPosId":"KAMPUSHG","Status":{"StatusCode":"OPENPAYU_ERROR_VALUE_INVALID","Code":"10720","CodeLiteral":"TRANSACTION_INVALID_PARAMS","Location":"InstallmentPayment","StatusDesc":["INVALID_CARD_NO","INVALID_CARD_EXPIRATION_DATE","INVALID_CARD_CVV"]}}'; 


$decode = json_decode($array); 
echo $decode->Status->Code; // Output 10720 

如果你想要一个数组,而不是一个对象

$decode = json_decode($array, true); 
echo $decode['Status']['Code']; // Output 10720