本文主要介绍使用 jsoncpp 库,编写C++语言的 JSON 封装程序。
1 示例程序
1.1 封装普通的json结构
示例代码(json_create_test1.cpp)如下:
-
#include <iostream>
-
#include <string>
-
#include <jsoncpp/json/json.h>
-
using namespace std;
-
int main()
-
{
-
Json::Value root;
-
string strJsonMsg;
-
// 字符串类型
-
root["occupation"] = "paladin";
-
// 布尔类型
-
root["valid"] = true;
-
// 数字类型
-
root["role_id"] = 1;
-
// 将json转换为string类型
-
strJsonMsg = root.toStyledString();
-
cout<< "strJsonMsg is: " << strJsonMsg << endl;
-
return 0;
-
}
编译并执行上述代码,结果如下:
从上述执行结果能够看到,我们成功地创建了一个json结构。
1.2 封装带有数组的json结构
示例代码(json_array_create.cpp)如下:
-
#include <iostream>
-
#include <string>
-
#include <jsoncpp/json/json.h>
-
using namespace std;
-
int main()
-
{
-
Json::Value root;
-
Json::Value ArrayObj;
-
Json::Value ArrayItem1;
-
Json::Value ArrayItem2;
-
string strJsonMsg;
-
// 1. 添加数组外数据
-
root["type"] = "roles_msg";
-
root["valid"] = true;
-
// 2. 编写数组内容
-
ArrayItem1["role_id"] = 1;
-
ArrayItem1["occupation"] = "paladin";
-
ArrayItem1["camp"] = "alliance";
-
ArrayObj.append(ArrayItem1);
-
ArrayItem2["role_id"] = 2;
-
ArrayItem2["occupation"] = "Mage";
-
ArrayItem2["camp"] = "alliance";
-
ArrayObj.append(ArrayItem2);
-
// 3. 添加数组数据
-
root["list"] = ArrayObj;
-
// 将json转换为string类型
-
strJsonMsg = root.toStyledString();
-
cout<< "strJsonMsg is: " << endl << strJsonMsg << endl;
-
return 0;
-
}
编译并执行上述代码,结果如下:
从上述执行结果能够看到,我们成功地创建了一个带有数组的json结构。
--------------------- 本文来自 liitdar 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/liitdar/article/details/81669446?utm_source=copy