JSON 在 WinCE 下的使用(2)- Simple Reader

原创 2016年10月08日 16:18:23

使用的 JSON 版本是:rapidjson-v1.1.0-13-g5268211,简单的 Jason 解析功能:Simple Reader,将 Jason 的字段解析成:Key 和 内容。

使用 VS2008 的对话框工程模板建立的新工程,将如下代码放一个 .cpp 文件中,然后增加到工程中,最后在窗体初始化中调用函数 TestPrittyWriter 就可以得到想要的结果。

如下代码:

// simplereaderCe.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#include "rapidjson/reader.h"		// Additional Include Directories: ../include

using namespace rapidjson;

/*
 * 功能: 解析 JSON 字符串,后面附解析示例。
*/

struct MyHandler
{
	bool Null() { printf("Null()\r\n"); return true; }
	bool Bool(bool b) { printf("Bool(boolalpha: %d)\r\n",b); return true; }
	bool Int(int i) { printf("Int(i: %d)\r\n",i); return true; }
	bool Uint(unsigned u) { printf("Uint(u: %d)\r\n",u); return true; }
	bool Int64(int64_t i) { printf("Int64(i: %d)\r\n",i); return true; }
	bool Uint64(uint64_t u) { printf("Uint64(u: %d)\r\n",u); return true; }
	bool Double(double d) { printf("Double(d: %d)\r\n",d); return true; }
	bool RawNumber(const char *str, SizeType length, bool copy) { 
		printf("Number(str: %s,length: %d,boolalpha: %d)\r\n",str,length,copy);
		return true;
	}
	bool String(const char *str, SizeType length, bool copy) { 
		printf("String(str: %s,length: %d,boolalpha: %d)\r\n",str,length,copy);
		return true;
	}
	bool StartObject() { printf("StartObject()\r\n"); return true; }
	bool Key(const char *str, SizeType length, bool copy) {
		printf("Key(str: %s,length: %d,boolalpha: %d)\r\n",str,length,copy);
		return true;
	}
	bool EndObject(SizeType memberCount) { printf("EndObject(memberCount: %d)\r\n",memberCount); return true; }
	bool StartArray() { printf("StartArray()\r\n"); return true; }
	bool EndArray(SizeType elementCount) { printf("EndArray: %d)\r\n",elementCount); return true; }
};


int _tmain(int argc, _TCHAR *argv[])
{
	const char json[] = " { \"hello\" : \"world\", \"t\" : true , \"f\" : false, \"n\": null, \"i\":123, \"pi\": 3.1416, \"a\":[1, 2, 3, 4] } ";

	MyHandler handler;
	Reader reader;
	StringStream ss(json);
	reader.Parse(ss,handler);	// reader.h RAPIDJSON_NAMESPACE.GenericReader.Parse -> ParseResult Parse(InputStream& is, Handler& handler)
					// Debug 模式在 Jason 的头文件中无法单步执行???断点可以起作用.
	return 0;
}

/*
StartObject()

Key(str: hello,length: 5,boolalpha: 1)

String(str: world,length: 5,boolalpha: 1)

Key(str: t,length: 1,boolalpha: 1)

Bool(boolalpha: 1)

Key(str: f,length: 1,boolalpha: 1)

Bool(boolalpha: 0)

Key(str: n,length: 1,boolalpha: 1)

Null()

Key(str: i,length: 1,boolalpha: 1)

Uint(u: 123)

Key(str: pi,length: 2,boolalpha: 1)

Double(d: 776530087)

Key(str: a,length: 1,boolalpha: 1)

StartArray()

Uint(u: 1)

Uint(u: 2)

Uint(u: 3)

Uint(u: 4)

EndArray: 4)

EndObject(memberCount: 7)

*/



JsonReader 使用方法

public final class JsonReader extends Object implements Closeable java.lang.Object ...
  • rqrtqqpqi5
  • rqrtqqpqi5
  • 2014年09月16日 10:26
  • 1595

使用Gson的JsonReader解析Json数据

原址:http://blog.csdn.net/jackie_xiaonan/article/details/15026901 自定义解析过程         这里把问题简化一下,...
  • wuyou1336
  • wuyou1336
  • 2016年07月27日 15:50
  • 2477

JSON 在 WinCE 下的使用(1)

JSON WinCE 格式化
  • 91program
  • 91program
  • 2016年09月26日 19:07
  • 1025

Gson全解析之二:JsonReader的其它方法

上篇文章的示例代码 String json = "{\"name\":\"wisely\",\"age\":\"18\"}"; private void readJson2User(){ ...
  • u013673799
  • u013673799
  • 2017年04月14日 01:29
  • 880

mongdb及它的mapreduce的坑

跟老同事交流,发现很多团队都不用mongodb了,由于工作原因,必须使用,后来发现里面的坑不少,下面列一些,希望有助于大家解决棘手的问题 1,导出导入数据。 用mongovue导出的数据(默认配置...
  • lijunwyf
  • lijunwyf
  • 2015年12月08日 21:44
  • 2062

ExtJs4学习(九)读写器reader、writer

Ext.data.reader.Json JSON Reader是用一个代理来读取服务端响应的JSON格式的返回值. 一般用于将结果加载成一个存储集-例如我们将创建一些如下东西: Ext.def...
  • dreamsunday
  • dreamsunday
  • 2014年12月27日 10:18
  • 4019

Storm入门-storm的安装

本文介绍linux环境下storm运行环境的搭建。由于条件有限,安装的storm运行在单机模式下,即主从节点都在同一台机器上,zookeeper也在同一台机器上。...
  • cjf_wei
  • cjf_wei
  • 2017年05月14日 12:19
  • 361

jsoncpp结构简介

在jsoncpp1.7.7版本中:   一:重要的.h文件有:allocator.h  features.h  reader.h  value.h  writer.h     1.1其中,alloca...
  • xzx_kag
  • xzx_kag
  • 2016年10月27日 18:31
  • 777

JsonObject生成Json字符串,并且解析为对象-----JsonReader解析Json字符串

MainActivity package com.example.gsondemo; import java.io.IOException; import org.json.JSONArray;...
  • u013210620
  • u013210620
  • 2016年05月31日 15:42
  • 3328

【第14篇】通过GSON的JsonReader去读取数据处理json数据

通过GSON的JsonReader去读取数据处理json数据
  • jilongliang
  • jilongliang
  • 2015年01月19日 09:36
  • 4498
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JSON 在 WinCE 下的使用(2)- Simple Reader
举报原因:
原因补充:

(最多只允许输入30个字)