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;
}
