JsonCpp第三课生成json格式-创新互联
1)数据内嵌json
{
"code" : "SheBeiLiXianGaoJingShangChuan",
"params" :
{
"alarm_source" : "192.68.1.0",
"id" : "234",
"remark" : "fire alarm",
"time_alarm" : "2017-2-1 21:34:21"
}
}
Json::Value jsonCode;
jsonCode["code"] ="SheBeiLiXianGaoJingShangChuan";
Json::Value jsonParams;
jsonParams["id"] ="234";
jsonParams["remark"] = "firealarm";
jsonParams["time_alarm"] ="2017-2-1 21:34:21";
jsonParams["alarm_source"] ="192.68.1.0";
jsonCode["params"] = jsonParams;
2)数据内嵌字符串数组
{
"extra_fields":[
"custom_field_1",
"custom_field_2"
],
"surveillance_ids":[
"0"
],
"order":{
"timestamp":-1
},
"hit_condition":{
"hit_similarity":80
},
"start":0,
"limit":100
}
代码
Json::Value root;
Json::Value jsonExtraFields;
jsonExtraFields.append("custom_field_1");
jsonExtraFields.append("custom_field_2");
root["extra_fileds"] = jsonExtraFields;
Json::Value jsonSurveillanceIds;
jsonSurveillanceIds.append("0");
root["surveillance_ids"] = jsonSurveillanceIds;
Json::Value jsonTimestamp;
jsonTimestamp["timestamp"] = -1;
root["order"] = jsonTimestamp;
Json::Value jsonHitSimilarity;
jsonHitSimilarity["hit_similarity"] = 80;
root["hit_condition"] = jsonHitSimilarity;
root["start"] = 0;
root["limit"] = 100;
std::string strResult = root.toStyledString();
3)创建一个标准带有缩进格式的json文件
void WriteContentToJsonFile()
{
Json::Value root;
for (int i = 0; i < 10; i++)
{
Json::Value node;
node["zoom"] = 1;
root["data"].append(node);
}
cout << "直接输出:" << endl;
Json::FastWriter fw;
cout << fw.write(root) << endl ;
//直接输出的没有进行换行,查看困难
cout << "缩进输出:" << endl;
Json::StyledWriter sw;
cout << sw.write(root) << endl ;
ofstream ofstreamHandle;
ofstreamHandle.open("fengyuzaitu51cto.json");
ofstreamHandle << sw.write(root);
ofstreamHandle.close();
}
注意事项
Json::Value valueNodeList;
for(int i=0; i <3; i++)
{
Json::Value nodeChannel;
nodeChannel["id"] = i;
valueNodeList.append(nodeChannel);
}
Json::Value valueRoot;
std::cout< valueRoot["channel"] = valueNodeList; std::cout< 进行如上的赋值操作之后,不能再调用valueNodeList访问数组,例如调用valueNodeList.size访问到的数据始终返回0,因为数据已经迁移到valueRoot对象中。 另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
本文标题:JsonCpp第三课生成json格式-创新互联
网页网址:http://azwzsj.com/article/csccej.html