我想拥有write_json
输出一个顶级数组,其效果如下:
[{...},{...},{...},...,{...}]
但是当我将列表传递给write_json
,它会转换为充满空白键的 json。
{"":{...},"":{...},"":{...},..."":{...}}
Using add_child
实际上尊重数组并给了我最接近的东西:
{"Some Key":[{...},{...},{...},...,{...}]}
但这仍然不是我想要的。
知道如何使该数组成为顶级吗?
Boost 没有 JSON 库(也没有 XML 库)。它有一个属性树库(恰好包含 JSON 兼容表示)。
您遇到的限制在那里得到了非常清楚的记录:http://www.boost.org/doc/libs/1_62_0/doc/html/property_tree/parsers.html#property_tree.parsers.json_parser http://www.boost.org/doc/libs/1_62_0/doc/html/property_tree/parsers.html#property_tree.parsers.json_parser
属性树数据集没有类型化,并且不支持数组本身。因此,使用以下 JSON/属性树映射:
- JSON 对象映射到节点。每个属性都是一个子节点。
- JSON 数组映射到节点。每个元素都是一个名称为空的子节点。如果节点同时具有命名和未命名子节点,则无法将其映射到 JSON 表示形式。
- JSON 值映射到包含该值的节点。但是,所有类型信息都会丢失;数字以及文字“null”、“true”和“false”都简单地映射到它们的字符串形式。
- 无法映射同时包含子节点和数据的属性树节点。
- JSON 往返,类型信息丢失除外。
它继续展示了您遇到的确切情况的示例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)