C++JSON库CJsonObject详解
什么是CJsonObject
CJsonObject是一个C++ JSON的解析器,它是轻量级而简单易用的。
CJsonObject的特点
- 优秀的可移植性:用C++编写,依赖于标准库和STL
- 轻量级:只有两个文件(h和cpp),几乎无外部依赖
- 易于使用:丰富的API帮助你快速实现JSON的解析和生成
- 高效性:使用STL和模板来保证效率
CJsonObject的用法
引入头文件
#include "CJsonObject.hpp"
创建一个空的JSON对象
neb::CJsonObject json1;
将Json字符串解析成一个JSON对象
neb::CJsonObject json2("{\"id\":123, \"name\":\"jack\"}");
将JSON对象转化为字符串
std::string str = json2.ToString();
获取JSON对象的基本属性
int id = json2.Get("id").To<int>();
std::string name = json2.Get("name").ToString();
设置和添加JSON对象的属性
json1.Add("name", "Bob");
json1.Add("age", 20);
合并两个JSON对象
json1.Merge(json2);
获得JSON对象中的数组
neb::CJsonObject array("[1,2,3,4]");
for (int i = 0; i < array.GetArraySize(); ++i) {
std::cout << array[i].To<int>() << std::endl;
}
示例一:解析JSON字符串
#include "CJsonObject.hpp"
#include <iostream>
int main() {
std::string strJson("{\"id\":123, \"name\":\"jack\"}");
neb::CJsonObject json(strJson);
int id = json.Get("id").To<int>();
std::string name = json.Get("name").ToString();
std::cout << "id: " << id << std::endl;
std::cout << "name: " << name << std::endl;
return 0;
}
运行结果:
id: 123
name: jack
示例二:生成JSON字符串
#include "CJsonObject.hpp"
#include <iostream>
int main() {
neb::CJsonObject json;
json.Add("name", "Bob");
json.Add("age", 20);
std::string strJson = json.ToString();
std::cout << strJson << std::endl;
return 0;
}
运行结果:
{"name":"Bob","age":20}
总结
CJsonObject是一个非常优秀的JSON解析库,它轻巧简单,API丰富,使用方便,同时支持解析和生成JSON,非常值得使用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++JSON库CJsonObject详解(轻量简单好用) - Python技术站