提问者:小点点

使用PHP访问特定JSON对象值


我试图从一个JSON字符串中访问特定的值。 可能是因为我对JSON结构和如何访问缺乏了解。 请帮帮我。 我正在尝试访问“merchantrequestid”和“phoneNumber”的值

我试过跟踪获取MerchantRequestID和获取错误。 另外,如果结构已知,我们可以直接访问特定元素的值吗?

$JSON_String = '{"Body":{"stkCallback":{"MerchantRequestID":"23226-16663390-1","CheckoutRequestID":"28062020192185","ResultCode":0,"ResultDesc":"It worked.","CallbackMetadata":{"Item":[{"Name":"Amount","Value":5.00},{"Name":"ReceiptNumber","Value":"XX223344"},{"Name":"Balance"},{"Name":"TransactionDate","Value":20200628142747},{"Name":"PhoneNumber","Value":12345678}]}}}}';

echo $JSON_String;
$jsonInput = json_decode($JSON_String, true);

foreach($jsonInput['Body'] as $body){
  foreach($body['stkCallback'] as $callBack){
   echo $callBack['MerchantRequestID'];
  }
}     

共1个答案

匿名用户

你可以在代码下面直接获得关键数据,而不需要循环。

$JSONINPUT=json_decode($JSON_STRING,true);

$MerchantRequestID = $jsonInput['Body']['stkCallback']['MerchantRequestID'];
$phoneNumber = $jsonInput['Body']['stkCallback']['CallbackMetadata']['Item'][4]['Value'];

谢谢。