jsoncpp库使用例子
发布时间:2020-12-16 18:53:35 所属栏目:百科 来源:网络整理
导读:从json格式的字符串中解析读: //g++ jsoncpp_read_sample.cpp -I/usr/local/include/jsoncpp -ljsoncpp#include iostream #include string #include json/json.hint main(void) { std::string strjson = "{"key1":"value1","array":[{"key2":"valu
从json格式的字符串中解析读: //g++ jsoncpp_read_sample.cpp -I/usr/local/include/jsoncpp -ljsoncpp #include <iostream> #include <string> #include <json/json.h> int main(void) { std::string strjson = "{"key1":"value1","array":[{"key2":"value2"},{"key2":"value3"},{"key2":"value4"}]}"; /* { "key1":"value1","array": [ {"key2":"value2"},{"key2":"value3"},{"key2":"value4"} ] } */ Json::Reader reader; Json::Value root; if (reader.parse(strjson,root)) { std::string out = root["key1"].asString(); std::cout << out << std::endl; const Json::Value arrayObj = root["array"]; for (int i=0; i<arrayObj.size(); i++) { out = arrayObj[i]["key2"].asString(); std::cout << out << std::endl; } } return 0; }
//g++ jsoncpp_write_sample.cpp -I/usr/local/include/jsoncpp -ljsoncpp #include <iostream> #include <string> #include <json/json.h> int main(void) { Json::Value root; Json::Value arrayObj; Json::Value item; for (int i = 0; i < 10; i ++) { item["key"] = i; arrayObj.append(item); } root["key1"] = "value1"; root["key2"] = "value2"; root["array"] = arrayObj; //root.toStyledString(); //格式化输出Json格式内容 std::string out = root.toStyledString(); std::cout << out << std::endl; std::cout << "--------------------" << std::endl; //未格式化输出Json格式内容 Json::FastWriter writer; std::string json_str = writer.write(root); std::cout << json_str << std::endl; return 0; } 从json格式的文件中解析读: 文件内容为 { "mmac": "e4:95:6e:4e:ed:6e","wmac": "ff:ff:ff:ff:ff:ff","data": [ { "mac": "3c:46:d8:19:6a:e3","rssi": "-82","tmc": "ff:ff:ff:ff:ff:ff" },{ "mac": "90:18:7c:f2:45:cc","rssi": "-71","tmc": "ff:ff:ff:ff:ff:ff" },{ "mac": "b8:44:d9:02:b0:94","rssi": "-86",{ "mac": "dc:85:de:6a:f8:37","rssi": "-44",{ "mac": "ec:0e:c4:60:b7:95","rssi": "-77","tmc": "ff:ff:ff:ff:ff:ff" } ] } //g++ read_json_file.cpp -I/usr/local/include/jsoncpp -ljsoncpp #include <fstream> #include <iostream> #include <string> #include <cassert> #include <json/json.h> int main(void) { std::ifstream ifs; ifs.open("test.json"); assert(ifs.is_open()); Json::Reader reader; Json::Value root; if (!reader.parse(ifs,root,false)) { std::cout<<"reader.parse() fail"<<std::endl; return -1; } std::string out = root["mmac"].asString(); std::cout << "mmac " << out << std::endl; out = root["wmac"].asString(); std::cout << "wmac " << out << std::endl; const Json::Value arrayObj = root["data"]; for (int i=0; i<arrayObj.size(); i++) { out = arrayObj[i]["mac"].asString(); std::cout << "data-->mac " << out << std::endl; out = arrayObj[i]["rssi"].asString(); std::cout << "data-->rssi " << out << std::endl; out = arrayObj[i]["tmc"].asString(); std::cout << "data-->tmc " << out << std::endl; } return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |