博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Jsoncpp 使用方法解析
阅读量:4634 次
发布时间:2019-06-09

本文共 1539 字,大约阅读时间需要 5 分钟。

Jsoncpp是目前比较好用的开源Json解析库,现在总结一下它的使用方法,理解,以供以后查阅。

在引入Jsoncpp的时候我们看到Jsoncpp里边的常用的cpp文件,有json_reader.cpp,json_value.cpp,json_writer.cpp,

其中:

json_value.cpp用来定义jsoncpp可以使用的类型,大概有

json_reader.cpp 主要用于将json串解析到json_value

json_writer.cpp 主要用于将字符串转换为json串

一、使用Jsoncpp解析Json串

Json串

示例:{"strjson":"jsonTest","address":"sea","array":[{"Test1":"Json1"},{"Test2":"Json2"},{"Test3":"Json3"}]};

可以看见,上面的json串包含两种结构的json串,对象类型和数组类型。

解析代码:

#include 
#include
#include"json/json.h"int main(){ std::string strJson = "{ \"strjson\":\"jsonTest\", \"address\" : \"sea\", \"array\" : [{\"Test1\":\"Json1\"}, {\"Test2\":\"Json2\" }, { \"Test3\":\"Json3\" }] }"; Json::Reader reader; Json::Value valueType1; //将strJson放至value区进行处理 if (reader.parse(strJson, valueType1)) { //第一种结构,对象类型,可以直接按键值获得关键值 std::string out = valueType1["strjson"].asString(); std::cout << out << std::endl; //第二种结构被还包含在第一种结构中,由第一种结构获取 //第二种结构只能按照迭代器来获取 Json::Value valueType2 = valueType1["array"]; for (int i = 0; i < valueType2.size(); i++) { std::cout << valueType2[i]["Test3"].asString()<

 

二、使用Jsoncpp生成Json串

 

代码示例:

{	Json::Value root;	Json::Value arrayObj;	Json::Value item;	//创建一个对象	item["Test1"] = "Json1";	item["Test2"] = "Json2";	item["Test3"] = "Json3";	root["strJson"] = "jsonTest";	root["address"] = "sea";	arrayObj.append(item);//item对象被作为值放入arrayObj中	root["array"] = arrayObj;		//将json转换为字符串	root.toStyledString();	std::cout << root << std::endl;	getchar();	return 0;}

 

 

运行结果如下:

 

转载于:https://www.cnblogs.com/citron/p/6135604.html

你可能感兴趣的文章
5 -- Hibernate的基本用法 --2 1 Hibernate 下载和安装
查看>>
Socket
查看>>
【C#公共帮助类】10年代码,最全的系统帮助类
查看>>
JQuery UI
查看>>
张弛有度
查看>>
【ZJOI2008】树的统计(树链剖分)
查看>>
【NOIP校内模拟】T2 华莱士(环套树)
查看>>
lists,tuples and sets of Python
查看>>
Superset配置hive数据源
查看>>
查询Master下的系统表和系统视图获取数据库的信息和简单的渗透测试
查看>>
GET和POST的区别
查看>>
Sublime Text 3 及Package Control 安装(附上一个3103可用的Key)
查看>>
jvm 性能调优
查看>>
算法(第四版)C# 习题题解——1.3
查看>>
LTE QCI分类 QoS
查看>>
【Flask】flask+uwsgi+nginx环境部署
查看>>
Get MAC address using POSIX APIs
查看>>
bzoj2120
查看>>
基于uFUN开发板的心率计(一)DMA方式获取传感器数据
查看>>
【dp】船
查看>>