dongpu5600
2018-03-07 13:49
浏览 85

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

图片转代码服务由CSDN问答提供 功能建议

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

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

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

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

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

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

    至少fo 其余的

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

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

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

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.

    已采纳该答案
    打赏 评论

相关推荐 更多相似问题