【问题标题】:how can I json_encode an object to an array in PHP?如何在 PHP 中将对象 json_encode 到数组中?
【发布时间】:2021-10-02 16:18:41
【问题描述】:

我正在尝试对一个对象进行 json_encode,但我希望外部包装器是一个数组而不是一个对象。

我试过了

json_encode($myObject, JSON_OBJECT_AS_ARRAY)

但我的最终结果总是

{
  "SALDOC": [
    {
      "SERIES": null,
      "TRDR": null,
      "PAYMENT": "2",
      "SHIPMENT": "",
      "TRNDATE": "2019-03-11 07:57:38",
      "REMARKS": null,
      "DISC1VAL": "0.0000",
      "SALESMAN": null,
      "SHIPKIND": null,
      "CCCCLCOURIERWEIGHT": "1.0000"
    }
  ],
  "ITELINES": [
    {
      "LINENUM": null,
      "VAT": null,
      "MTRUNIT4": null,
      "MTRCATEGORY": null,
      "MTRL": null,
      "QTY1": "1.0000",
      "PRICE": "15.0000"
    }
  ],
  "MTRDOC": [
    {
      "SHPZIP": "test",
      "SHPCITY": "teset",
      "SHIPPINGADDR": "test",
      "SHPDISTRICT": 100
    }
  ],
  "SRVLINES": [],
  "EXPANAL": []
}

如何使外包装成为数组 [] 而不是对象 {}?

【问题讨论】:

  • 你不能,因为它包含键值对。在编码之前将其转换为一个简单的数组。
  • 我尝试将对象转换为数组,例如 (array)$myObject ,但这也失败了。我需要做一些具体的事情才能让它发挥作用吗?
  • 如果它是 JSON 中的数组,那么您将没有 SALDOC 键等...
  • 我明白了。好的,我明白了。非常感谢

标签: php json serialization


【解决方案1】:

如果我猜想你正在尝试将对象转换为数组,对吗?所以你可以使用:

$get_array = json_decode(json_encode($myObject), true); 返回 $get_array;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-25
    • 1970-01-01
    • 1970-01-01
    • 2012-07-29
    • 2014-05-17
    • 1970-01-01
    • 2011-05-13
    • 2011-04-21
    相关资源
    最近更新 更多