// 解析json
bool read(string content)
{
//string temp;
Json::Reader jReader;
Json::Value root;
// jReader将Json字符串解析到root,root将包含Json里所有子元素
if (!jReader.parse(content, root))
{
AfxMessageBox(_T("json 解析出错"));
return false;
}
if (root["元素"].asString() != "1001")
{
}
try
{
for (int i = 0; i < root["数组"].size(); ++i)
{
Json::Value& plan = root["数组"][i];
if (plan.isNull())
{
break;
}
if (plan["元素"].isString())
{
string temp = plan["元素"].asString();
CString strProductCode = UTF8ToGBK(temp.c_str());
}
..........
}
}
catch (...)
{
AfxMessageBox(_T("解析出错"));
return false;
}
return true;
}
bool write(string & a_data)
{
// 数据存放在 vector中,
// 建立一个跟节点
// json::Value 是jsoncpp中最基本、最重要的类,用于表示各种类型的对象
Json::Value json_temp;//临时对象,
json_temp["name"] = Json::Value("zhangsan");
json_temp["age"] = Json::Value(26);
Json::Value json_temp2;//临时对象,
json_temp2["name"] = Json::Value("lissi");
json_temp2["age"] = Json::Value(26);
Json::Value root; // 表示整个json的对象
root["key_string"] = Json::Value("Value_string");
//root["key_object"] = json_temp;
root["key_object"].append(json_temp); // 新建一个key为“key_object”, 类型为数组,对第一个元素赋值为json_temp2
root["key_object"].append(json_temp2);
root["numeber"] = Json::Value(2);
root["error_type"] = Json::Value("No error");
// Json::Writer 类是一个纯虚函数,它的子类:
//Json::FastWriter 最快
// Json::StyledWriter 格式化的Json
// Json::StyledStreamWriter
Json::FastWriter fast_writer;
string strdata = fast_writer.write(root);
CString show;
show = strdata.data();
OutputDebugString(show);
// {"error_type":"No error","key_object":[{"age":26,"name":"lissi"},{"age":26,"name":"zhangsan"}],"key_string":"Value_string","numeber":2}
return true;
}