RapidJson读取json文档

 

RapidJson基本操作

1、读取

使用 rapidjson::Document::Parse处理原始文本。

使用 rapidjson::Document::ValueType处理数据项(rapidjson::Document本身也是ValueType)。

例:

json文件内容如:

{ "N1": "D1", "N2": { "bejing", "shanghai", "guangzhou" } }

代码:

rapidjson::Document doc;

doc.Parse<rapidjson::kParseDefaultFlags>((const char*)<#原文本#>);

auto & n1 = doc["N1"];

if(n1.IsString())
{
	printf("n1 is:%s\n", n1.GetString()); // 输出 D1
}

 

读取数组:

auto & a = doc["N2"];
if(a.IsArray())
{
	for (size_t i = 0; i < a.Size(); ++i)
	{
		auto & node = a[i];
		printf("%s\n", node.GetString());
	}
}

 

附:


使用编译语法定义json内容

概念:

String: 字符串, Number: 数字, Object:对象, Array:数组, null:空值, false:布尔假, true:布尔真

R1: _Name: String

R2: _Data: String,Number,Object,Array,null,false,true

R3: Object: { _Name:_Data, ... } (最后一项后面没有逗号)

R4: Array: [_Data, _Data, ...] (最后一项后面没有逗号)

R5: 一个合法的json为一个单独的顶级Object。

 

posted @ 2016-04-07 11:16  巴巴厘  阅读(2605)  评论(0)    收藏  举报