jsoncpp 将对象插入文档而不是追加
jsoncpp insert object into document rather than append
我们正在与一个合作伙伴合作,该合作伙伴要求某些字段出现在 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"
}
有没有办法将 "subobject" 插入到文档的开头,或者将现有的 json_message 附加到 sub_json?
谢谢
由于对象成员的内部表示,这是不可能的。
JsonCpp 使用 std::map
。当您使用 FastWriter
序列化为字符串时,如果找到对象 std::vector<JSONCPP_STRING> getMemberNames()
将被调用,这会将 std::map
.
的键放入向量中
要达到您的目标,您必须修改 getMemberNames()
,将 "priority" 分配给您喜欢的成员(例如 subobject
)。
我们正在与一个合作伙伴合作,该合作伙伴要求某些字段出现在 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"
}
有没有办法将 "subobject" 插入到文档的开头,或者将现有的 json_message 附加到 sub_json? 谢谢
由于对象成员的内部表示,这是不可能的。
JsonCpp 使用 std::map
。当您使用 FastWriter
序列化为字符串时,如果找到对象 std::vector<JSONCPP_STRING> getMemberNames()
将被调用,这会将 std::map
.
要达到您的目标,您必须修改 getMemberNames()
,将 "priority" 分配给您喜欢的成员(例如 subobject
)。