我正在使用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;
}
Run Code Online (Sandbox Code Playgroud)
我可以只编写一个函数来获取所有属性,而这个函数并不真正关心类型等吗?
该项目已移至GitHub.
要避免所有换行符,请使用StreamWriterBuilder:
Json::Value whatever = ...;
Json::StreamWriterBuilder builder;
builder.settings_["indentation"] = "";
std::string out = Json::writeString(builder, whatever);
Run Code Online (Sandbox Code Playgroud)
您可以轻松创建自己的作家,做任何您想做的事情。查看 的代码StyledWriter
。你不喜欢的 CRLF 来自StyledWriter::Write
。您可以创建自己的没有那些 CRLF 的编写器类。
如果您不介意修改库,请更改编写器,以便像这样的函数writeValue
受到保护而不是私有。StyledWriter
然后,您可以使用不同的函数派生自己的类Write
,并且仍然使用各种write*
函数来执行转换的详细信息。