【问题标题】:How to json_encode complex data structures in PHP?如何在 PHP 中对复杂的数据结构进行 json_encode?
【发布时间】:2011-05-17 00:46:26
【问题描述】:

我有一个数据结构,它的顶层是一个字典,并且包含列表。一个典型的例子可能是:

array('foo' => array(1, 2, 3),
      'bar' => array(4, 5, 6));

顶级字典可能没有属性,内部列表可能为空。

这些结构需要进行 JSON 编码。问题是 PHP 不区分空字典和空列表,因此它不知道 array() 是否应该呈现为 '{}' 或 '[]'。我可以通过这样做来强制“{}”

json_encode($object, JSON_FORCE_OBJECT);

但是会呈现

array('foo' => array());

as '{"foo": {}}',当它应该是 '{"foo": []}'。如果我省略了 JSON_FORCE_OBJECT,那么

array();

当它应该是 '{}' 时被呈现为 '[]'。除了放弃 PHP 并用理智的语言编写它之外,还有什么解决方案?

【问题讨论】:

    标签: php json


    【解决方案1】:

    遍历你的数据并用

    替换所有应该是对象的array()
    $objectItem = new stdClass();
    

    或者做

    $objectItem = (object)$objectItem;
    

    或者,您可以从一开始就为这些项目使用对象而不是数组。

    【讨论】:

      猜你喜欢
      • 2020-06-24
      • 1970-01-01
      • 1970-01-01
      • 2017-07-05
      • 2022-11-15
      • 2014-10-25
      • 1970-01-01
      • 2011-04-26
      • 2020-02-20
      相关资源
      最近更新 更多