C++中Json的⽤法(上)
相信⼤家在编程中会经常接触Json,⽐如发送Http请求时通过Json来请求数据等等。
下⾯我就通过⼀个⼩例⼦来总结下我所⽤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);
json值的类型有哪些
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;
注意:对于同⼀级别的数值,顺序没有影响!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。