我试图从一个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'];
}
}
你可以在代码下面直接获得关键数据,而不需要循环。
$JSONINPUT=json_decode($JSON_STRING,true);
$MerchantRequestID = $jsonInput['Body']['stkCallback']['MerchantRequestID'];
$phoneNumber = $jsonInput['Body']['stkCallback']['CallbackMetadata']['Item'][4]['Value'];
谢谢。