从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>

此问题已经存在 这里有一个答案: p>

  • 为什么Python无法解析这个JSON数据? [关闭] 9 answers span> li> \ n ul> div>

    我下面有一个JSON对象,但我很难从中获取名称,价值。 p>

    我想获取值并将它们保存到数据库中。 p>

      $ json ='
     {
    “Body”:
     {
    “stkCallback”  :
     {
    “ResultCode”:0,
    “”ResultDesc“:”服务请求已成功处理。“,
    ”CallbackMetadata“:
     {
    ”Item“:
     [
     {\  n“名称”:“金额”,
    “值”:10 
    },
     {
    “名称”:“TransactionDate”,
    “值”:20170727154800 
    },
     {
    “ 名称“:”PhoneNumber“,
    ”值“:26721566839 
    } 
    ] 
    } 
    } 
    } 
    }'; 
      code>  pre> 
     
     

    我如何获得“名称”:“金额”值和“名称”:“TransactionDate”值。 p>

    至少fo 其余的 p>

      $ ResultCode = json_decode($ json) - &gt; Body-&gt; stkCallback-&gt; ResultCode; 
     $ ResultDesc = json_decode($ json) - &gt  ; Body-&gt; stkCallback-&gt; ResultDesc; 
      code>  pre> 
     
     

    问题是,当某些值具有值而其他值不具有值时,如何在循环中获取值 ? p> div>

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.