从Json Object获取非缩进字符串

时间:2013-09-20 20:04:09

标签: c++ json

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

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

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

这将以漂亮的打印格式返回字符串。但我希望字符串没有任何缩进。我怎么能这样做,因为班上没有提供其他功能?

2 个答案:

答案 0 :(得分:1)

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

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

如果您查看toStyledString的定义,函数Json::Value::toStyledString也只会使用Json::StyledWriter

答案 1 :(得分:0)

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

http://json.org

P.S。我从未使用过这个特定的库,所以我提出了一种通用的解决方案。

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