我使用JsonCpp解析json数据。我真的不需要理解数据,我只需要打印出一些属性及其值。它不知何故很难做到。首先,我需要知道值是什么类型,然后获取值,然后再将其转换为字符串!有一个风格的作家,但我不想使用它,因为它最后添加了一些CRLF。
我这样做
CJsonHelper::getUInt(Json::Value &root, std::string key){
return root.get(key, 0-1).isInt() ? root.get(key, 0-1).asUInt() : 0-1;
}
我是否可以只编写一个函数来获取所有属性,而这个函数并不真正关心类型等?
答案 0 :(得分:8)
该项目已移至GitHub。
要避免所有换行,请使用StreamWriterBuilder:
Json::Value whatever = ...;
Json::StreamWriterBuilder builder;
builder.settings_["indentation"] = "";
std::string out = Json::writeString(builder, whatever);
答案 1 :(得分:1)
您可以轻松创建自己的作家,随心所欲。查看StyledWriter
的代码。您不喜欢的CRLF来自StyledWriter::Write
。您可以创建自己的编写器类,而不包含那些CRLF。
如果您不介意修改库,请更改编写器,使writeValue
等函数受到保护而非私有。然后,您可以使用不同的StyledWriter
函数从Write
派生自己的类,并仍然使用各种write*
函数来执行转换的详细信息。