c++ - jsoncpp格式化问题

标签 c++ json jsoncpp

我正在使用 jsoncpp,但在使用其中一个编写器编写 json 消息时,我对它们的格式设置有疑问。

例如:

root["name"] = "monkey";
std::cout << writer.write(root) << "\n";

给我一​​些像这样格式化的东西

{
    "name" : "monkey"
}

虽然我真的想要:

{"name":"monkey"}

我查看了文档并提到了 setIndentLength() 但它们没有出现在源文件中,所以它们可能已被弃用或其他原因。

有人知道怎么做吗?

最佳答案

作为cdunn2001答案的扩展,不需要重写默认设置(.settings_)。您可以只覆盖 StreamWriterBuilder 构建器的“缩进”值:

Json::Value json = ...
Json::StreamWriterBuilder builder;
builder["commentStyle"] = "None";
builder["indentation"] = ""; //The JSON document is written in a single line
std::unique_ptr<Json::StreamWriter> writer(builder.newStreamWriter());
writer->write(json, &std::cout);

关于c++ - jsoncpp格式化问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7557258/

相关文章:

c++ - 进行排列时 vector 出错

无法在 main 中访问在函数中初始化的 C++ 数组

c++ - 使用 jsoncpp 解析 JSON 字符串

c++ - 将 Json::Value 转换为 std::string?

c++ - 在可变参数模板中使用 lambda 调用 std::make_tuple - 这应该在 C++11 中工作吗?

json - 如何使用 jq 将 JSON 字符串格式化为表格?

Javascript 检查 json 输出是否为空

javascript - PHP ECHO 到 JSON 结果 = JSON.parse : expected property name or '}' at line 1 column 2 of the JSON data

c++ - 在 JSON 字符串中序列化 utf-8 字符的标准方法

c++ - 为什么 ChangeWindowMessageFilter 会导致 Qt 崩溃?