同步操作将从 Tocy/SampleCode 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
/*This is a part of Tocy's Sample Codedemo to use JsonCpphttps://github.com/open-source-parsers/jsoncpp*/#include <iostream>#include <string>#include <fstream>#include <cassert>#include "json/json.h"using namespace std;// =========================== parse-json ==================================void demo_simple(){ifstream ifs;ifs.open("checkjson.json");/*In this file, its content is : (key-value){"name" : "tocy","age" : 1000}*/assert(ifs.is_open());Json::Reader reader;Json::Value root;if (!reader.parse(ifs, root, false)){cerr << "parse failed \n";return;}string name = root["name"].asString();int age = root["age"].asInt();cout << "demo read from filet result =============\n";cout << "name : " << name << endl;cout << "age : " << age << endl;cout << endl;ifs.close();}void demo_parse_mem_object(){const char json_data[] ="{\"name\" : \"Tocy\", \"salary\" : 100, \"msg\" : \"work hard\", \\"files\" : [\"1.ts\", \"2.txt\"]}";Json::Reader reader;Json::Value root;// reader将Json字符串解析到root,root将包含Json里所有子元素if (!reader.parse(json_data, json_data + sizeof(json_data), root)){cerr << "json parse failed\n";return;}cout << "demo read from memory using object ---------\n";string name = root["name"].asString();int salary = root["salary"].asInt();string msg = root["msg"].asString();cout << "name: " << name << " salary: " << salary;cout << " msg: " << msg << endl;cout << "enter files: \n";Json::Value files = root["files"]; // read array herefor (unsigned int i = 0; i < files.size(); ++i){cout << files[i].asString() << " ";}cout << endl << endl;}void demo_parse_mem_array(){const char json_data[] ="[{\"name\" : \"Tocy\", \"salary\" : 100}, {\"name\" : \"Kit\", \"salary\" : 89}, \\"a json note\"]";Json::Reader reader;Json::Value root;// reader将Json字符串解析到root,root将包含Json里所有子元素if (!reader.parse(json_data, json_data + sizeof(json_data), root)){cerr << "json parse failed\n";return;}cout << "demo read from memory using array---------\n";unsigned int count = root.size() - 1;for (unsigned int i = 0; i < count; ++i){string name = root[i]["name"].asString();int salary = root[i]["salary"].asInt();cout << "name: " << name << " salary: " << salary << endl;}cout << "last msg: " << root[count].asString() << endl;cout << endl << endl;}// =================== save-json =====================================void demo_write_simple(){Json::Value root;Json::FastWriter writer;Json::Value person;person["name"] = "tocy";person["age"] = 1000;root.append(person);string json_file = writer.write(root);cout << "demo write json ==============\n";cout << json_file << endl;}void demo_write_object(){Json::Value root;Json::FastWriter writer;root["name"] = "tocy";root["salary"] = 100;root["msg"] = "work hard";Json::Value files;files[0] = "1.ts";files[1] = "2.txt";root["files"] = files;string json_file = writer.write(root);cout << "demo write json object ==============\n";cout << json_file << endl;}void demo_write_array(){Json::Value root;Json::FastWriter writer;{Json::Value person;person["name"] = "Tocy";person["salary"] = 100;root[0] = person;}{Json::Value person;person["name"] = "Kit";person["salary"] = 89;root[1] = person;}root[2] = "a json note";string json_file = writer.write(root);cout << "demo write json ==============\n";cout << json_file << endl;}int main(int argc, char * argv[]){demo_simple();demo_parse_mem_object();demo_parse_mem_array();cout << "\n\nnext are write json example\n================================\n";demo_write_simple();demo_write_object();demo_write_array();return 0;}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。