jsoncpp将对象插入到文档中而不是追加

时间:2017-09-08 20:03:01

标签: jsoncpp

我们正在与合作伙伴合作,该合作伙伴需要在JSON文档的开头显示一些字段。我们在知道这些初始数据之前构建了一个文档,并且无法在开始时找到插入它的方法。 我们有:

Json::Value json_message
json_message["singlestring"] = "blah blah blah"

然后一个函数获取此消息

SomeFunction(Json::Value &json_message) {
   Json::Value sub_json;
   sub_json["one"] = "some sub 1";
   sub_json["two"] = "some sub 2";
   json_message["subobject"] = sub_json;
}

导致

{
"singlestring":"blah blah blah",
"subobject":
{
"one":"some sub 1",
"two":"some sub 2",
}
}

但我们需要

{
"subobject":
{
"one":"some sub 1",
"two":"some sub 2",
},
"singlestring":"blah blah blah"
}

有没有办法插入"子对象"到文档的开头,或者将现有的json_message附加到sub_json? 谢谢

1 个答案:

答案 0 :(得分:0)

由于对象成员的内部表示,这是不可能的。

JsonCpp使用std::map。当您使用FastWriter序列化为字符串时,如果找到了一个对象std::vector<JSONCPP_STRING> getMemberNames(),则会将std::map的键放入向量中。

要实现目标,您必须修改getMemberNames(),指定&#34;优先级&#34;对你喜欢的成员(例如subobject)。