我有一个应用程序需要以下 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使用 Json::Value 构建 JSON 对象.
因为 "bulk"
需要是 [null]
,所以我按如下方式填充它:
//Json::Value *json_obj //Getting passed as an arg
(*json_obj)["config"]["services"]["analytics"]["sensor"][0]["bulk"] = Json::nullValue;
但是我得到的是:
"bulk":null//注意 null 周围缺少的 []。
因此配置被丢弃。
JsonCpp 有没有办法实现以下目标:
"bulk" : [null]
最佳答案
由于 Json 中的括号表示一个数组,因此您需要的是一个包含 null 的数组。你应该能够这样做:
Json::Value jsonArray;
jsonArray.append(Json::Value::null);
(*json_obj)["config"]["services"]["analytics"]["sensor"][0]["bulk"] = jsonArray;
关于c++ - 在 JsonCpp 中的 Json::Value 中分配 [null],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46799064/