0

我在 C++ 中有一个 json 对象。我正在使用 json_cpp 库。

我想从 Json::Value 对象中获取字符串。我正在使用它,如下所示。

Json::Value obj;
....
....
....
string str = obj.toStyledString();

这将返回漂亮打印格式的字符串。但我想要没有任何缩进的字符串。由于课程中没有提供其他功能,我该怎么做?

4

2 回答 2

1

您可以使用Json::FastWriter它没有任何缩进和格式,因为它在一行上输出所有内容。它通常不适合“人类”食用。

std::string toUnStyledString(const Json::Value& value)
{
   Json::FastWriter writer;
   return writer.write( value );
}

如果您toStyledString查看.Json::StyledWriterJson::Value::toStyledString

于 2013-09-20T21:33:53.803 回答
0

好吧,如果这个库没有提供适当的方法,那么你可以自己编写它们。JSON 格式相当简单,所以我认为它不会花费很多工作。在这里您可以找到 JSON 格式的良好图形表示:

http://json.org

PS 我从来没有使用过这个特定的库,所以我提出了一种通用的解决方案。

更新:另一种选择是获取 toStyledString() 返回的字符串并删除缩进。但它需要字符串处理,并且可能会消耗资源。请注意,您不能只删除制表符/空格/换行符,因为它们可以是 JSON 对象的一部分。为什么你又想要未缩进的字符串?

于 2013-09-20T20:18:33.593 回答