我对 jsoncpp 有一个小问题。我正在构建一个字典列表,如果字典为空,我使用我得到的 writer 打印列表的结果
[{some value}, null].
如何让作家打印{}
而不是null
?
我对 jsoncpp 有一个小问题。我正在构建一个字典列表,如果字典为空,我使用我得到的 writer 打印列表的结果
[{some value}, null].
如何让作家打印{}
而不是null
?
使用带有Json::Value
一个参数的构造函数Json::ValueType::objectValue
(如文档中所述:JsonCpp Doc/Json::Value)。
Json::Value value;
value["list"][0] = Json::Value(Json::ValueType::objectValue);
value["list"][1] = Json::Value();
cout << value.toStyledString() << endl;
上面的代码打印出来:
{
"list" : [ {}, null ]
}
类的默认构造函数Json::Value
使用默认参数值Json::ValueType::nullType
。类Json::Writer
族显示值nullType
asnull
和类型objectValue
为 as的空值{}
(对于每个Json::Writer
: StyledWriter
, StyledStreamWriter
, FastWriter
.
Json::Value
的默认构造函数,第 212 行Json/value.h@github:
namespace Json {
class JSON_API Value {
Value(ValueType type = nullValue); // line: 212
(...)
在这里StyledWriter
,第 263-290 行json_writer.cpp@github:
void StyledWriter::writeValue(const Value& value) {
switch (value.type()) {
case nullValue:
pushValue("null");
(...)
case objectValue: {
Value::Members members(value.getMemberNames());
if (members.empty())
pushValue("{}");
(...)