一、下载jsoncpp
在GitHub上下载最新的JSON源码:https://github.com/open-source-parsers/jsoncpp
二、编译jsoncpp
1.打开cmake
下载cmake:Download | CMake
选择Windows版本
解压后打开bin里面的cmake-gui.exe
2.选择jsoncpp路径并配置参数
依次选择jsoncpp解压目录和生成目录,点击Configure按钮,按实际配置编译器
等一会完成后显示红色,不用管,点多一次Configure按钮
最后再点击Generate生成对应的工程
3.编译jsoncpp
打开工程,生成动态库
三、使用jsoncpp
包含头文件和lib
#include "json/json.h"
#pragma comment(lib, "../lib/jsoncpp.lib")
生成json格式字符串
CString SendSocketNetMessage(Json::Value root)
{
auto writeToString = [](Json::StreamWriter::Factory const& factory, Json::Value const& value, std::string* str)
{
std::unique_ptr<Json::StreamWriter> const writer(
factory.newStreamWriter());
std::ostringstream oss;
writer->write(value, &oss);
*str = oss.str();
};
Json::StreamWriterBuilder builder;
builder["commentStyle"] = "None";
builder["indentation"] = "\t";
std::string SendBuf;
writeToString(builder, root, &SendBuf);
CString strBuf = SendBuf.c_str();
SendBuf.clear();
return strBuf;
}
CString ToJson(const int nInt, const double dDouble, const CString str)
{
Json::Value root;
root["Int"] = Json::Value(nInt);
root["Double"] = Json::Value(dDouble);
root["CString"] = Json::Value(str);
auto ret = SendSocketNetMessage(root);
root.clear();
return ret;
}
四、运行结果
CString str = ToJson(-10, 123.456, "test");
str内容:
{
"Int" : -10,
"Double" : 123.456,
"CString" : "test"
}