十分钟学会C++ RapidJson的简单使用

Mon Sep 14 20:14:29 CST 2015 5179 C/C++

文章摘要RapidJson,C++领域中强大的处理json的利器。

RapidJson是一款C++的json解析、生成利器,来自腾讯的开源作品。


一、安装RapidJson

RapidJson的安装非常方便,仅仅需要将源码中的include/rapidjson目录拷贝至你的系统include目录或者工程的include目录即可。

Github源码地址: https://github.com/TencentOpen/rapidjson


二、使用样例

1.组装json

#include <stdio.h>
#include <string>
#include <iostream>

#include "rapidjson/document.h"
#include "rapidjson/prettywriter.h"
#include "rapidjson/stringbuffer.h"

using namespace std;
using namespace rapidjson;

int main(){
    /*
    生成如下格式的json,并输出字符串
    {
      "name":"chenzuhuang",
      "sites":["http://www.chenzuhuang.com","http://blog.chenzuhuang.com"]
    }
    */
	Document document;
	Document::AllocatorType& allocator = document.GetAllocator();
	
	//根
	Value root(kObjectType);
	
	
	//一个值,类型为string
	Value name(kStringType);
	//设置value的值
	name.SetString("chenzuhuang", allocator);
	//将值name放到root中,并用"name"作为key
	root.AddMember("name", name, allocator);
	
	
	//一个值,类型为数组
	Value sites(kArrayType);
	//往数组里放元素
	sites.PushBack("http://www.chenzuhuang.com", allocator).PushBack("http://blog.chenzuhuang.com", allocator);
	//将数组放到root中,并用"sites"作为key
	root.AddMember("sites", sites, allocator);
	
	
	//输出字符串
	StringBuffer buffer;
	Writer<StringBuffer> writer(buffer);
	root.Accept(writer);
	string reststring = buffer.GetString();
	cout << reststring << endl;

	system("pause");
	return 0;
}

输出如下:

{"name":"chenzuhuang","sites":["http://www.chenzuhuang.com","http://blog.chenzuhuang.com"]}



打赏
打赏

分享到: