如何将JsonCPP值作为字符串?

Lal*_*ith 4 c++ json jsoncpp

我正在使用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)

我可以只编写一个函数来获取所有属性,而这个函数并不真正关心类型等吗?

cdu*_*001 8

该项目已移至GitHub.

要避免所有换行符,请使用StreamWriterBuilder:

Json::Value whatever = ...;
Json::StreamWriterBuilder builder;
builder.settings_["indentation"] = "";
std::string out = Json::writeString(builder, whatever);
Run Code Online (Sandbox Code Playgroud)


Dav*_*rtz 1

您可以轻松创建自己的作家,做任何您想做的事情。查看 的代码StyledWriter。你不喜欢的 CRLF 来自StyledWriter::Write。您可以创建自己的没有那些 CRLF 的编写器类。

如果您不介意修改库,请更改编写器,以便像这样的函数writeValue受到保护而不是私有。StyledWriter然后,您可以使用不同的函数派生自己的类Write,并且仍然使用各种write*函数来执行转换的详细信息。