问题:
使用下面的示例代码,能够创建一个 json 字符串并如下打印,我的要求是打印成一行(下面也是),没有空格或制表符,我可以使用 boost 还是需要显式删除来自字符串。
#include "boost/property_tree/json_parser.hpp"
#include <boost/property_tree/ptree.hpp>
#include <sstream>
#include <iostream>
int main()
{
boost::property_tree::ptree root;
root.put("sessionId", "123456");
root.put("applicationName", "Sample_Appliation");
root.put("applicationId", "null");
root.put("logMessage", "Sample Message");
root.put("loggingTime", "2020-03-17T13:26:45.013");
std::stringstream ss;
boost::property_tree::write_json(ss, root);
std::cout << ss.str() << std::endl;
return 0;
}
输出:
{
"sessionId": "123456",
"applicationName": "Sample_Appliation",
"applicationId": "null",
"logMessage": "Sample Message",
"loggingTime": "2020-03-17T13:26:45.013"
}
预期:
{"sessionId": "123456","applicationName": "Sample_Appliation","applicationId": "null","logMessage": "Sample Message","loggingTime": "2020-03-17T13:26:45.013"}
最佳答案
boost::property_tree::write_json
有第三个参数,名为pretty
,默认值为true
,只需传递false
作为禁用 pretty-print 的第三个参数。
关于c++ - Json输出成单行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65388896/