8

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

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

4

2 回答 2

10

该项目已移至GitHub

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

Json::Value whatever = ...;
Json::StreamWriterBuilder builder;
builder.settings_["indentation"] = "";
std::string out = Json::writeString(builder, whatever);
于 2015-02-17T00:01:45.653 回答
1

您可以轻松地创建自己的作家,随心所欲。看看代码StyledWriter。你不喜欢的 CRLF 来自StyledWriter::Write. 您可以创建自己的没有那些 CRLF 的 writer 类。

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

于 2012-01-13T02:04:40.647 回答