`
ljhupahu
  • 浏览: 33765 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

Gson 的 JsonReader source code 理解

    博客分类:
  • Gson
阅读更多

JsonReader 将JSON 内容作为Stream 读取, Stream包括 strings, numbers, booleans, and nulls 及 对象的开始有结束符, 另外还有数组。 

 

以读取一个简单的Json为例, 

 

 

public void testReadSimple() throws IOException {
		JsonReader reader = new JsonReader(reader("{\"name_test\": \"value_test\"}"));
		reader.beginObject();
		assertEquals("name_test", reader.nextName());
		assertEquals("value_test", reader.nextString());
		reader.endObject();
		assertEquals(JsonToken.END_DOCUMENT, reader.peek());
	}

 

 

主要的全局变量如下:

/**

   * Use a manual buffer to easily read and unread upcoming characters, and

   * also so we can create strings without an intermediate StringBuilder.

   * We decode literals directly out of this buffer, so it must be at least as

   * long as the longest token that can be reported as a number.

   */

1. private final char[] buffer = new char[1024];

2. private int pos = 0;   // current position.

3. private int limit = 0;

4. int peeked = PEEKED_NONE;

 /*

   * The nesting stack. Using a manual array rather than an ArrayList saves 20%.

   */

5. private int[] stack = new int[32];

6. private int stackSize = 0;

  {

    stack[stackSize++] = JsonScope.EMPTY_DOCUMENT;

  }

7.   /** The input JSON. */

  private final Reader in;

 

 

其序列图如下表示 :

 

 

 

 

 

 

  • 大小: 33.8 KB
分享到:
评论

相关推荐

    google gson source code

    Gson 2.3.1 的 源代码,对深入学习gson的实现原理有很大的帮助,对gson中标签的使用的研究,有很大的帮助。

    gson 2.2.4 source

    google 官方 gson source 2.2.4

    com.google.code.gson的jar

    标题 "com.google.code.gson的jar" 指的是Google开源项目Gson的Java库,它是一个Java编程语言的JSON(JavaScript Object Notation)库。JSON是一种轻量级的数据交换格式,广泛应用于网络通信和数据存储。Gson库使得...

    gson-2.6.2.jar包(com.google.code.gson:gson:2.6.2)

    Gson库是Google开发的一个Java库,用于在Java对象和JSON数据之间进行映射。它的全名是Google Simple JSON,其版本2.6.2在Android开发中被广泛使用...因此,理解并熟练掌握Gson的使用对Android开发者来说是至关重要的。

    om.google.gson.Gson Gson maven依赖

    <groupId>com.google.code.gson</groupId> <artifactId>gson <version>2.6.2 ``` Gson库的核心功能包括以下几点: 1. **对象到JSON字符串的序列化**:你可以使用`Gson().toJson()`方法将Java对象转换为JSON...

    com.google.gson.Gson 2.8.1 2.8.2 jar包 gson

    <groupId>com.google.code.gson</groupId> <artifactId>gson <version>2.8.2 ``` 总之,Google Gson是Java开发中不可或缺的数据序列化工具,其易用性、灵活性和广泛的功能使其成为处理JSON数据的标准选择。无论...

    gson-2.8.0-API文档-中文版.zip

    Maven坐标:com.google.code.gson:gson:2.8.0; 标签:google、gson、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和...

    gson-2.8.9-API文档-中文版.zip

    Maven坐标:com.google.code.gson:gson:2.8.9; 标签:google、gson、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和...

    gson-2.8.6-API文档-中文版.zip

    Maven坐标:com.google.code.gson:gson:2.8.6; 标签:google、gson、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和...

    GSON完整jar包(jar、doc、source)

    GSON完整包,包含三个jar包。 gson-2.2.4.jar GSON生成解析json数据的基本jar包; gson-2.2.4-javadoc.jar GSON API介绍文档包; gson-2.2.4-sources.jar GSON源码包。 下载一个玩玩吧!

    Gson的2.2.4jar

    Gson是Google推出的一款强大的Java库,主要用于在Java对象与JSON数据之间进行相互转换。它的全称是Google Simple JSON,自2008年发布...通过深入理解和熟练使用Gson,你可以更加高效地构建与JSON数据交互的应用程序。

    google-gson-2.2.4

    此外,`google-gson-2.2.4`压缩包中可能包含了源代码、文档、示例和其他资源,方便开发者深入理解和使用Gson。用户可以通过查看源代码了解其实现细节,或者查阅文档获取更详细的使用指南。对于初学者来说,阅读Gson...

    com.google.gson.Gson-2.8.2

    4. **流式API**:Gson的`JsonWriter`和`JsonReader`提供了流式处理JSON数据的方式,适合处理大量数据,可以有效避免内存溢出问题。 5. **日期/时间处理**:Gson提供内置的日期/时间类型适配器,可以方便地将日期...

    googleGson JsonObject json转换包

    包含以下java源文件: ...com.google.gson.stream.JsonReader.class com.google.gson.stream.JsonScope.class com.google.gson.stream.JsonToken.class com.google.gson.stream.JsonWriter.class ...

    com.google.gson.Gson 2.8.0 jar包

    截止至2016-12-23,github上com.google.gson.Gson 最新的2.8.0jar包。强大的json字符串解析功能及将字符串转换为json格式。才发现需要这么多分,大家也可以去网盘下载: ...

    GSON JAR包 最新包和历史包 gson-2.10.1

    介绍:Gson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to an equivalent Java object. 压缩包里有以下文件: ...

    com.google.gson.Gson 2.8.5 jar包

    截止至2018-11-27,github上com.google.gson.Gson 最新的2.8.5jar包。强大的json字符串解析功能及将字符串转换为json格式。我16年上传的免费下载的2.8.0版本不知道为什么变成下载需要50分了

    gson jar包下载

    Gson,全称为Google Simple JSON,是Google提供的一款开源库,用于在Java对象和JSON数据之间进行映射。这个库使得Java开发者能够轻松地将JSON字符串转换为等效的Java对象,反之亦然。在Java应用程序中,Gson库特别...

    gson-2.8.6.zip

    `gson-2.8.6.zip`是Gson库的版本2.8.6的压缩包文件,其中包含的主要文件是`gson-2.8.6.jar`,这是一个Java Archive (JAR) 文件,用于在Java环境中运行Gson库。 **Gson库的基本概念:** 1. **JSON(JavaScript ...

    Google-gson-2.8.2

    4. **流式 API:** Gson 提供了 `JsonReader` 和 `JsonWriter`,它们允许以流式方式处理 JSON 数据,适用于大体积数据或者需要逐行处理的情况。 5. **类型安全:** Gson 能够处理泛型类型,确保在反序列化时保持...

Global site tag (gtag.js) - Google Analytics