版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/z2066411585/article/details/102769384
项目中用到rapidjson开源库,用于json数据的解析和封装. 记录下使用的一些技巧
构建数组对象
"extra": {
"sceneList": [
{
"sceneId": "aaaaaaaa",
"sceneStatus": 0
},
{
"sceneId": "aaaaaaaa",
"sceneStatus": 1
},
{
"sceneId": "aaaaaaaa",
"sceneStatus": 2
}
]
}
代码如下:
// 申请数组
Value array2(kArrayType);
for(int i=0;i<3;i++){
// 申请对象
Value object1(kObjectType);
object1.AddMember("sceneId","aaaaaaaa",allocator);
object1.AddMember("sceneStatus",i,allocator);
array2.PushBack(object1,allocator);
}
//申请对象
Value object3(kObjectType);
//添加数组成员
object3.AddMember("sceneList",array2,allocator);
doc.AddMember("extra",object3,allocator);
遍历数组
"lang_list":[
"fr-CA",
"ja-JP",
"en-CA",
]
代码如下:
Value &lang_list = attachInfo["lang_list"];
//for(SizeType i=0;i<lang_list.Size(); i++)
//cout<<'\t'<<lang_list[i].GetString()<<endl;
Value langList(kArrayType);
for(SizeType i=0;i<lang_list.Size(); i++)
{
Value strObject(kObjectType);
strObject.SetString(StringRef(lang_list[i].GetString()));
langList.PushBack(strObject,allocator);
}