我们正在与合作伙伴合作,该合作伙伴需要在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? 谢谢
答案 0 :(得分:0)
由于对象成员的内部表示,这是不可能的。
JsonCpp使用std::map
。当您使用FastWriter
序列化为字符串时,如果找到了一个对象std::vector<JSONCPP_STRING> getMemberNames()
,则会将std::map
的键放入向量中。
要实现目标,您必须修改getMemberNames()
,指定&#34;优先级&#34;对你喜欢的成员(例如subobject
)。