在 JsonCpp 的 Json::Value 中分配 [null]
Assigning [null] in Json::Value in JsonCpp
我有一个应用程序需要按照 JSON 格式进行配置,但已缩小:
<config-json>
{
"config" : {
"services" : {
"analytics" : {
"sensor" : [
{
"name" : "ip-sensor",
"server-name" : ["ip-server1"],
"export-name" : "ip-export1",
"resource" : "/ipv4",
"bulk" : [null] // <-- Notice
}
]
}
}
}
}
</config-json>
在上面的 JSON 配置中,应用程序期望 "bulk"
始终与 [null]
一样。从应用程序的角度来看,这是正确的期望。
在我的配置生成器代码中,我使用 JsonCpp to build the JSON objects by using Json::Value。
因为 "bulk"
需要 [null]
,我按如下方式填充它:
//Json::Value *json_obj //Getting passed as an arg
(*json_obj)["config"]["services"]["analytics"]["sensor"][0]["bulk"] = Json::nullValue;
但我得到的是:
"bulk":null // Notice the missing [] around null.
因此配置被丢弃。
JsonCpp有没有办法实现以下功能:
"bulk" : [null]
由于 Json 中的括号表示一个数组,因此您要的是一个包含 null 的数组。你应该可以这样做:
Json::Value jsonArray;
jsonArray.append(Json::Value::null);
(*json_obj)["config"]["services"]["analytics"]["sensor"][0]["bulk"] = jsonArray;
我有一个应用程序需要按照 JSON 格式进行配置,但已缩小:
<config-json>
{
"config" : {
"services" : {
"analytics" : {
"sensor" : [
{
"name" : "ip-sensor",
"server-name" : ["ip-server1"],
"export-name" : "ip-export1",
"resource" : "/ipv4",
"bulk" : [null] // <-- Notice
}
]
}
}
}
}
</config-json>
在上面的 JSON 配置中,应用程序期望 "bulk"
始终与 [null]
一样。从应用程序的角度来看,这是正确的期望。
在我的配置生成器代码中,我使用 JsonCpp to build the JSON objects by using Json::Value。
因为 "bulk"
需要 [null]
,我按如下方式填充它:
//Json::Value *json_obj //Getting passed as an arg
(*json_obj)["config"]["services"]["analytics"]["sensor"][0]["bulk"] = Json::nullValue;
但我得到的是:
"bulk":null // Notice the missing [] around null.
因此配置被丢弃。
JsonCpp有没有办法实现以下功能:
"bulk" : [null]
由于 Json 中的括号表示一个数组,因此您要的是一个包含 null 的数组。你应该可以这样做:
Json::Value jsonArray;
jsonArray.append(Json::Value::null);
(*json_obj)["config"]["services"]["analytics"]["sensor"][0]["bulk"] = jsonArray;