zoukankan      html  css  js  c++  java
  • Json---Windows下使用Jsoncpp

    上述Json解析使用的是Jsoncpp,要使用Jsoncpp,得做如下几步的配置:

      1.

       首先从http://sourceforge.net/projects/jsoncpp/下载,压缩包大约105k。

      2.

       解压之后,进入 jsoncpp-src-0.5.0makefilesvs71  打开 jsoncpp.sln

      3.  

        debug编译lib_json 项目,会在 jsoncpp-src-0.5.0uildvs71debuglib_json 下生成 json_vc71_libmtd.lib

         

        release编译lib_json 项目

        项目属性->C/C++ ->输出文件->汇编输出 要设置成 无列表 (否则,在自己项目中引用生成的 json_vc71_libmt.lib 编译时会报错)。

        会在 jsoncpp-src-0.5.0uildvs71 eleaselib_json 下生成 json_vc71_libmt.lib

         

         

       4

        在自己的项目中,引用 jsoncpp-src-0.5.0includejson 下的头文件,和相应的 json_vc71_libmt.lib(debug 版  json_vc71_libmt.lib(release 版)。

        就可以开始使用了。

     Demo:

    #include <fstream>
    #include "json.h"
    using namespace std;
    
    int JsonRead()
    {
    	ifstream ifs;
    	ifs.open("testR.json");
    
    	Json::Reader reader;
    	Json::Value value;
    	if (!reader.parse(ifs,value,false))
    	{
    		return -1;
    	}
    
    	if (value.isObject()) //单个json串,格式:{"age":23,"name":"往事随风"}
    	{
    		string name = value["name"].asString();
    		if (value["name"].isString())
    		{
    			name = value["name"].asString();
    			cout << "name:" << name << endl;
    		}
    
    		int	age = value["age"].asInt();
    		if (value["age"].isInt())
    		{
    			age = value["age"].asInt();
    			cout << "age:" << age << endl;
    		}
    
    		int aaa = value["aaa"].asInt(); //value 没有 "aaa" 这个key的数据时,会给 aaa 赋初值 0
    	}
    	else if (value.isArray()) //json数组,格式:[{"age":23,"name":"往事随风"}]
    	{
    		cout << value.size() << endl;
    		for (int i = 0; i < value.size(); i++)
    		{
    			string name = value[i]["name"].asString();
    			if (value[i]["name"].isString())
    			{
    				name = value[i]["name"].asString();
    				cout << "name:" << name << endl;
    			}
    
    			int	age = value[i]["age"].asInt();
    			if (value[i]["age"].isInt())
    			{
    				age = value[i]["age"].asInt();
    				cout << "age:" << age << endl;
    			}
    
    			int aaa = value[i]["aaa"].asInt();
    		}
    	}
    
    	getchar();
    	return 0;
    }
    
    int JsonWrite()
    {
    	Json::Value root;
    	Json::FastWriter writer;
    	Json::Value person;
    
    	person["name"] = "往事随风";
    	person["age"] = 23;
    	//root.append(person);
    
    	string json_file = writer.write(person); //单个json串,格式:{"age":23,"name":"往事随风"}
    	//string json_file = writer.write(root); //json数组,格式:[{"age":23,"name":"往事随风"}]
    
    	ofstream ofs;
    	ofs.open("testW.json");
    	ofs<<json_file;
    	getchar();
    	return 0;
    }
    
    int main()
    {
    	JsonRead();
    	JsonWrite();
    	return 0;
    }
    

      

      

  • 相关阅读:
    Flask: 用户认证
    Flask: Web表单
    Flask QuickBoot
    Flask: 构建API
    4 Gbase 8a 集群管理工具
    3 GBase 8a客户端
    2 GBase 8a 数据库版本升级
    1 GBase 8a MPP Cluster V95 安装和卸载
    0 GBase 8a MPP Cluster 数据库核心技术
    Chrome Network面板
  • 原文地址:https://www.cnblogs.com/SZxiaochun/p/5866401.html
Copyright © 2011-2022 走看看