1)數(shù)據(jù)內(nèi)嵌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)數(shù)據(jù)內(nèi)嵌字符串?dāng)?shù)組
{
??? "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)創(chuàng)建一個(gè)標(biāo)準(zhǔn)帶有縮進(jìn)格式的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 ;
//直接輸出的沒有進(jìn)行換行,查看困難
cout << "縮進(jìn)輸出:" << endl;
?Json::StyledWriter sw;
?cout << sw.write(root) << endl ;
?ofstream ofstreamHandle;
?ofstreamHandle.open("fengyuzaitu51cto.json");
?ofstreamHandle << sw.write(root);
?ofstreamHandle.close();
}
注意事項(xiàng)
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< 進(jìn)行如上的賦值操作之后,不能再調(diào)用valueNodeList訪問數(shù)組,例如調(diào)用valueNodeList.size訪問到的數(shù)據(jù)始終返回0,因?yàn)閿?shù)據(jù)已經(jīng)遷移到valueRoot對(duì)象中。 另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
本文名稱:JsonCpp第三課生成json格式-創(chuàng)新互聯(lián)
文章出自:http://weahome.cn/article/csccej.html