1、示例的json格式
2、测试代码
使用的版本jsonjson_0.10.7
- void test_video_list()
- {
- Json::Value root;
- Json::Value calss_info;
- Json::FastWriter writer;
- Json::Value PointInfo;
-
- char* device = "device";
- char* status = "status";
-
- root[device] = "test1";
- root[status] = "0";
- root["total_num"] = "2";
-
- calss_info["seq"] = "1";
- calss_info["class_addr"]="rtmp://192.168.1.252/test/chan1";
- calss_info["class_info"]["class"] = "氧化反应1";
- calss_info["class_info"]["section"] = "高中";
- calss_info["class_info"]["grade"] = "高一";
- calss_info["class_info"]["teacher"] = "陈海";
- calss_info["class_info"]["subject"] = "化学";
-
- PointInfo["seq"] = "1";
- PointInfo["time"] = "5825";
- PointInfo["dsc"] ="开始试验1";
- calss_info["class_info"]["time_info"].append(PointInfo);
-
- PointInfo["seq"] = "2";
- PointInfo["time"] = "19825";
- PointInfo["dsc"] ="开始试验2";
- calss_info["class_info"]["time_info"].append(PointInfo);
-
- root["video_list"].append(calss_info);
-
- calss_info.clear();
-
- calss_info["seq"] = "2";
- calss_info["class_addr"]="rtmp://192.168.1.252/test/chan2";
- calss_info["class_info"]["class"] = "氧化反应2";
- calss_info["class_info"]["section"] = "高中";
- calss_info["class_info"]["grade"] = "高一";
- calss_info["class_info"]["teacher"] = "陈海";
- calss_info["class_info"]["subject"] = "化学";
- root["video_list"].append(calss_info);
-
- string data = writer.write(root);
- cout << "data: " << data <<endl;
-
- int list_size = root["video_list"].size();
-
-
- cout << root.toStyledString() << endl;
- cout << "list_size: " << list_size << endl;
-
-
- for(int i = 0; i < list_size; ++i)
- {
- cout << "class_addr: " << root["video_list"][i]["class_addr"].asString() << endl;
- cout << "class_info size: " << root["video_list"][i]["class_info"].size() <<endl;
- cout << "class: " << root["video_list"][i]["class_info"]["class"].asString() <<endl;
- cout << "section_id: " << root["video_list"][i]["class_info"]["section_id"].asString() <<endl;
-
- cout << "time info size: " << root["video_list"][i]["class_info"]["time_info"].size() << endl;
- cout << root["video_list"][i]["class_info"]["time_info"].toStyledString() << endl;
-
-
- for(int j = 0; j < root["video_list"][i]["class_info"]["time_info"].size(); ++j)
- {
-
- cout << root["video_list"][i]["class_info"]["time_info"][j]["time"].asString() << endl;
-
-
- }
- }
- }
3、获取json的名称
- void JsonCPP_test()
- {
- Json::Reader read;
- Json::Value test_value;
-
- test_value["device"] = "testdev";
-
- Json::Value GradeValue, SubjectValue, SectionValue;
-
-
- const char* grade = "grade";
-
- test_value["catalog"][grade].append("一年级");
- test_value["catalog"]["grade"].append("二年级");
- test_value["catalog"]["subject"].append("小学");
- test_value["catalog"]["subject"].append("初中");
-
-
- cout << test_value.toStyledString() << endl;
- int array_size = test_value["catalog"].size();
- cout << "array_size: " << array_size << endl;
-
- int i = 0;
- int j = 0;
- int catalog_size = test_value["catalog"].size();
-
- vector<string> root_name = test_value.getMemberNames();
- for(int i = 0; i < root_name.size();++i)
- {
- cout << "root_name: " << root_name[i] << endl;
- }
-
- vector<string> name = test_value["catalog"].getMemberNames();
- for(int i = 0; i < name.size();++i)
- {
- cout << "name: " << name[i] << endl;
- }
-
-
- for(; j < catalog_size; ++j)
- {
- for(; i < test_value["catalog"][name[j]].size(); ++i)
- {
- cout << test_value["catalog"][name[j]][i].asString() << endl;
- }
- }
- }
(FPGATOM) |