JsonCPP的使用

来源:互联网 发布:淘宝网商城女装斗篷 编辑:程序博客网 时间:2024/06/05 08:22

1、首先是引入jsoncpp库,如下图所示:


2、代码如下:

#include "stdafx.h"#include "JsonCPPTest.h"/*{"msg":{"count":5,"data":[{"datId":1,"datType":3,"station":"json test 1","valid":1,"value":223.25999999999999},{"datId":2,"datType":3,"station":"json test 2","valid":1,"value":223.25999999999999},{"datId":3,"datType":3,"station":"json test 3","valid":1,"value":223.25999999999999},{"datId":4,"datType":3,"station":"json test 4","valid":1,"value":223.25999999999999},{"datId":5,"datType":3,"station":"json test 5","valid":1,"value":223.25999999999999}],"type":"post"}}*///生成以上json字符串string MakeJson(){Json::Value json_temp;json_temp["type"]=Json::Value("post");int count=5;json_temp["count"]=Json::Value(count);Json::Value jsonV;CString str;for (int i=1;i<=count;i++){Json::Value vle;Json::Value::UInt dwOid=i;vle["datId"]=Json::Value(dwOid);vle["valid"]=Json::Value(1);vle["datType"]=Json::Value(3);str.Format("json test %d",i);vle["station"]=Json::Value(str);vle["value"]=Json::Value(223.26);jsonV["data"].append(vle);}json_temp["data"]=jsonV["data"];Json::Value root;root["msg"]=json_temp;Json::FastWriter fast_writer;string json=fast_writer.write(root);return json;}//解析MakeJson()生成的json字符串void ParseJsonStr(string json){Json::Reader reader;Json::Value root;if (!reader.parse(json, root))//将json字符串转换成一个json对象root,如果成功返回true,如果失败返回false{return ;}Json::Value Obj = root["msg"];//获取一个对象int count=Obj["count"].asInt();//从对象中获取一个key的值string type=Obj["type"].asString();//从对象中获取一个key的值Json::Value arrayObj=Obj["data"];//从对象中获取一个数据for (int i=0;i<arrayObj.size();i++){Json::Value tmp=arrayObj[i];//从数组中获取一个对象int datId=tmp["datId"].asInt();//从对象中获取一个key的值int datType=tmp["datType"].asInt();string station=tmp["station"].asString();int valid=tmp["valid"].asInt();double value=tmp["value"].asDouble();}}int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]){TRACE("%s\n",MakeJson().c_str());ParseJsonStr(MakeJson());return 0;}


0 0
原创粉丝点击