我在 C++ 中有一个 json 对象。我正在使用 json_cpp 库。
我想从 Json::Value 对象中获取字符串。我正在使用它,如下所示。
Json::Value obj;
....
....
....
string str = obj.toStyledString();
这将返回漂亮打印格式的字符串。但我想要没有任何缩进的字符串。由于课程中没有提供其他功能,我该怎么做?
您可以使用Json::FastWriter
它没有任何缩进和格式,因为它在一行上输出所有内容。它通常不适合“人类”食用。
std::string toUnStyledString(const Json::Value& value)
{
Json::FastWriter writer;
return writer.write( value );
}
如果您toStyledString
查看.Json::StyledWriter
Json::Value::toStyledString
好吧,如果这个库没有提供适当的方法,那么你可以自己编写它们。JSON 格式相当简单,所以我认为它不会花费很多工作。在这里您可以找到 JSON 格式的良好图形表示:
PS 我从来没有使用过这个特定的库,所以我提出了一种通用的解决方案。
更新:另一种选择是获取 toStyledString() 返回的字符串并删除缩进。但它需要字符串处理,并且可能会消耗资源。请注意,您不能只删除制表符/空格/换行符,因为它们可以是 JSON 对象的一部分。为什么你又想要未缩进的字符串?