我有一个数据结构,在顶层是一个字典,并包含列表。一个典型的例子可能是:
array('foo' => array(1, 2, 3),
'bar' => array(4, 5, 6));
顶级字典可能没有属性,内部列表可能为空。
这些结构需要进行JSON编码。问题是PHP不区分空字典和空列表,因此它不知道array()是否应该呈现为“{}”或“[]”。我可以通过
强制'{}'json_encode($object, JSON_FORCE_OBJECT);
但是呈现
array('foo' => array());
为'{“foo”:{}}',当它应为'{“foo”:[]}'时。如果我遗漏了JSON_FORCE_OBJECT,那么
array();
当应该是'{}'时,
呈现为'[]'。什么是解决方案,除了放弃PHP并用一种理智的语言写这个?
答案 0 :(得分:2)
遍历您的数据并用
替换所有应该是对象的数组()$objectItem = new stdClass();
或做
$objectItem = (object)$objectItem;
或者,您可以从一开始就为这些项而不是数组使用对象。