1. Poco::JSON

/////////////////// POCO::JSON ///////////////////// #include "Poco/JSON//Parser.h" #include "Poco/Dynamic/Var.h" #include <fstream> void CreateJson() { Poco::JSON::Object root, temp; Poco::JSON::Array province, cities; // 1. //对中文的支持不好 cities.add("大庆"); cities.add("哈尔滨"); temp.set("name", "黑龙江"); temp.set("cities", cities); province.add(temp); cities.clear(); temp.clear(); cities.add("深圳"); cities.add("广州"); temp.set("name", "广东"); temp.set("cities", cities); province.add(temp); root.set("province", province); root.set("country", "中国"); std::ostringstream osstr; root.stringify(osstr, 2);//中文显示不出 std::string s = osstr.str(); /* 结果: { "country" : "中国", "province" : [ { "cities" : [ "\u00B4\u00F3\u00C7\u00EC", "\u00B9\u0FB6\u0EF1\u00F5" ], "name" : "\u00BA\u00DA\u00C1\uD82B\uDF6D" }, { "cities" : [ "\u00C9\u00EE\u00DB\u00DA", "\u00B9\u00E3\u00D6\u00DD" ], "name" : "\u00B9\u3DAB" } ] } */ //2. cities.add("daqing"); cities.add("haerbin"); temp.set("name", "heilongjiang"); temp.set("cities", cities); province.add(temp); cities.clear(); temp.clear(); cities.add("shenzhen"); cities.add("guangzhou"); temp.set("name", "guangdong"); temp.set("cities", cities); province.add(temp); root.set("province", province); root.set("country", "中国"); Poco::Dynamic::Var js(root); std::string str = js.toString(); /* 结果如下 { "country" : "中国", "province" : [ { "cities" : [ "daqing", "haerbin" ], "name" : "heilongjiang" }, { "cities" : [ "shenzhen", "guangzhou" ], "name" : "guangdong" } ] } */ std::ofstream ofile("test.json"); root.stringify(ofile, 4); ofile.close(); } int main() { CreateJson(); return 0; }