C++ JsonCpp:如何在Json::Value中获取en空对象?

C++ JsonCpp:如何在Json::Value中获取en空对象?,c++,jsoncpp,C++,Jsoncpp,我有一个外部库,它接收一个Json::Value作为参数。然后,它将输出一个包含JSON结构的字符串,其中包含我传递的JSON::Value 我正试图将一个空对象{}放在带有的Json::Value中 最后,我试图从包含“{}”的std::string解析空的JSON对象,我需要在JSON::Value中解析它 当我声明一个Json::Value并对其不做任何处理并将其传递到我的库时,我得到的是NULL,而不是{}…示例: Json::Value root; Json::Reader reade

我有一个外部库,它接收一个
Json::Value
作为参数。然后,它将输出一个包含JSON结构的字符串,其中包含我传递的
JSON::Value

我正试图将一个空对象
{}
放在带有的
Json::Value

最后,我试图从包含
“{}”
std::string
解析空的JSON对象,我需要在
JSON::Value
中解析它

当我声明一个
Json::Value
并对其不做任何处理并将其传递到我的库时,我得到的是
NULL
,而不是
{}

示例:

Json::Value root;
Json::Reader reader;
reader.parse("{}", root);
assert(root != Json::nullValue);
std::string someStr = Json::FastWriter().write(root);
assert(someStr == "{}\n");

所有的断言都通过了,因此解析的对象没有空值,当您将其写回字符串时,您将得到空对象
“{}”
。这对您不起作用吗?

它可能对某些人有帮助: 在当前版本中。我使用的是-1.8.2,可以得到如下的空对象:

Json::Value root;
root = Json::objectValue;

它究竟在哪里失败(通常的json解析)?您没有提到您的输出。@Alex M.更新了我的问题,可能会有所帮助。没有失败我只是想知道如何将我的字符串(包含一个空对象)加载到Json::Value中…就在你发布答案之前,我发现答案大致相同,,,最后是我调用的库将空Json
{}
转换为
NULL
。接受作为答案,因为这是我最初想知道的。谢谢我需要做类似的手术。我有一个现有的根,它需要一个命名的空对象(动态地,有时填充数据不可用)。出于遗留原因,命名为null的子级不会剪切它。因为上面的答案,我从各种各样的愚蠢变成了这段甜美优雅的代码:
Json::Value&sub_root=root[“name”]=Json::objectValue然后我可以填充sub_根或将其留空,接收器将做正确的事情。这是从即席JSON构造到使用JSONcpp的转换。非常高兴。以上答案应被接受。