dongpu5600 2018-03-07 13:49
浏览 100
已采纳

从Key Value JSON对象获取数据[重复]

This question already has an answer here:

I have a JSON object below, but i'm struggling to get name, value from it.

I would want to get the values and save them into a database.

$json = '
{
  "Body":
  {
    "stkCallback":
    {
      "ResultCode":0,
      "ResultDesc":"The service request is processed successfully.",
      "CallbackMetadata":
      {
        "Item":
        [
          {
            "Name":"Amount",
            "Value":10
          },
          {
            "Name":"TransactionDate",
            "Value":20170727154800
          },
          {
            "Name":"PhoneNumber",
            "Value":26721566839
          }
        ]
      }
    }
  }
}';

How can I get the "Name":"Amount" values and "Name":"TransactionDate" value.

At least for the rest

$ResultCode = json_decode($json)->Body->stkCallback->ResultCode;
$ResultDesc = json_decode($json)->Body->stkCallback->ResultDesc;

The question is, how do I get the values in a loop when some have values and others don't?

</div>
  • 写回答

1条回答 默认 最新

  • dougang1965 2018-03-07 13:56
    关注

    Try this :

    $response=json_decode($json,true);
    
    echo $amount=$response['Body']['stkCallback']['CallbackMetadata']['Item']['0']['Value'];
    echo $TransactionDate=$response['Body']['stkCallback']['CallbackMetadata']['Item']['1']['Value'];
    echo $PhoneNumber=$response['Body']['stkCallback']['CallbackMetadata']['Item']['2']['Value'];
    

    You have all the values in variables now.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?