c++ - 在 JsonCpp 中的 Json::Value 中分配 [null]

标签 c++ json 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使用 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/

相关文章:

c++ - 2个默认复制构造函数: is it possible?

C++/SFML 程序在退出时崩溃

c# - 将平面字典序列化为多子对象 JSON

c++ - Jsoncpp问题

c++ - 如何在 C++ 中使用 jsoncpp 编写嵌套的 json

c++ - 列出查找算法

c++ - 使用 C++ 和 Boost(或不使用?)检查是否正在使用特定端口?

python - 无法解析响应,不是有效的 JSON

javascript - Instagram API created_time 与 Moment.js 的最新日期

c++ - 使用 C++ 和 jsoncpp 将文件行写入 JSON