我希望write_json
输出一个顶级数组,其效果如下:
[{...},{...},{...},...,{...}]
但是当我将列表传递给write_json
时,它会转换为一个充满空白键的json。
{"":{...},"":{...},"":{...},..."":{...}}
使用add_child
实际上尊重数组并给我最接近的东西:
{"Some Key":[{...},{...},{...},...,{...}]}
但那仍然不是我想要的。
任何想法如何使该阵列达到最高水平?
答案 0 :(得分:1)
Boost没有JSON库(也没有XML库)。它有一个属性树库(恰好包含一个JSON兼容的表示)。
您遇到的限制完全清楚地记录在那里: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往返,但类型信息丢失除外。
接着展示了你遇到的一个例子。