我在c ++中有一个json对象。我正在使用json_cpp库。
我想从Json :: Value对象中获取字符串。我正在使用它如下。
Json::Value obj;
....
....
....
string str = obj.toStyledString();
这将以漂亮的打印格式返回字符串。但我希望字符串没有任何缩进。我怎么能这样做,因为班上没有提供其他功能?
答案 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格式的良好图形表示:
P.S。我从未使用过这个特定的库,所以我提出了一种通用的解决方案。
UPDATE:另一个选项是获取toStyledString()返回的字符串并删除缩进。但它需要字符串处理,可能会消耗资源。请注意,您不能只删除制表符/空格/换行符号,因为它们可以是JSON对象的一部分。 为什么你想再次使用缩进的字符串?