C++中Json的用法(上)

2 篇文章 0 订阅

相信大家在编程中会经常接触Json,比如发送Http请求时通过Json来请求数据等等。

首先我要告诉大家的是,在C++中,有现成的Json使用的库,如:lib_json.lib,大家需要的自取后进行编译生成https://github.com/open-source-parsers/jsoncpp/archive/0.10.6.zip。

下面我就通过一个小例子来总结下我所用Json时所遇到的问题。

例子:

{
"group" :{
"allOf":[
{
"state":{
"EQ":[
"Published"
]
}
}
]
},
"start":0,
"limit":20
}

在这个例子中,基本囊括了所有Json串的所有用法,例如"start":0,就是一个简单的数字的赋值的语法:Json::Value value;//定义一个json值的对象
value["start"] = Json::Value(0);// 对象中的元素进行赋值。

“group”是一个比较复杂的结构,总的来看:它里面有一个叫allof的数组元素,数组中又有一个state的值,state中的值是一个EQ的数组,数组中有一个Published的值。

对于复杂的结构,可以定义临时对象进行赋值!

那么我要告诉大家的是,对于数组类型,使用append进行赋值,对于值类型直接使用=即可。

那么基于这个原则,上面这个例子可以写为:

Json::Value group;
Json::Value allOf;
Json::Value state;
Json::Value EQ;

EQ.append(Json::Value("Published"));
state["EQ"] = EQ;
allOf["state"] = state;
group["allOf"].append(allOf);
value["group"] = group;

那么对于整个结构,完整的定义应该如下:

Json::Value value;
value["start"] = Json::Value(0);
value["limit"] = Json::Value(20);


Json::Value group;
Json::Value allOf;
Json::Value state;
Json::Value EQ;


EQ.append(Json::Value("Published"));
state["EQ"] = EQ;
allOf["state"] = state;
group["allOf"].append(allOf);
value["group"] = group;

注意:对于同一级别的数值,顺序没有影响!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值