【问题标题】:PHP value from JSON来自 JSON 的 PHP 值
【发布时间】:2020-11-26 18:14:46
【问题描述】:

JSON 数组有问题。我如何从“订单”->“状态”中获得价值 这是正文 JSON 正文

{
  "orders": [
    {
      "orderId": "F3MXBWMG61151028GUEST000P01",
      "orderCreateDate": "2015-10-28T09:24:45.318+01:00",
      "notifyUrl": "http://server/payuint2/main/notify2",
      "customerIp": "127.0.0.1",
      "merchantPosId": "200003",
      "description": "TEST",
      "currencyCode": "USD",
      "totalAmount": "15000",
      "status": "NEW",
      "products": [
        {
          "name": "TEST",
          "unitPrice": "15000",
          "quantity": "1"
        }
      ]
    }
  ],
  "status": {
    "statusCode": "SUCCESS",
    "statusDesc": "Request processing successful"
  }
}

我现在正在尝试使用代码

$order_info_payu = json_decode($response,true);
 $order_status = $order_info_payu->orders->status;

 $order_status = $order_info_payu['orders']['status'];

当我只使用时

$order_status = $order_info_payu['orders']

那么我有内容,但是如何从“订单”中获取“状态”?

【问题讨论】:

  • json_decode 将第二个参数设置为 true,将对象转换为关联数组 - 所以 -> 将不再工作。而orders 本身就是一个对象的array - 所以你需要首先使用数字索引来访问其中一个对象。所以$order_info_payu['orders'][0]['status']
  • print_r($order_info_payu);看结构,你会看到0在那里。
  • 太好了,它有效!非常感谢!

标签: php arrays json api rest


【解决方案1】:

现在它的工作。

$order_status = $order_info_payu->orders[0]->status;
echo $order_status;

orders 对象内你有一个 array 这就是为什么你需要添加 ..->orders[0]->..

看到有一个

  {
  "orders": [ .... /* square brackets = an array inside the order object,*/ 
]
}

这个方括号意味着在order object之后有一个数组,然后在这个数组里面还有其他的对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多