美文网首页
JSON 解析

JSON 解析

作者: 我要离开浪浪山 | 来源:发表于2021-08-22 21:46 被阅读0次

1、json定义

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式
作用
数据标记,存储,传输

2、特点

  1. 读写速度快
  2. 解析简单
  3. 轻量级
  4. 独立于语言,平台
  5. 具有自我描叙性

3、json解析

image.png

4、JSON建构于两种结构:

  • “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象
    (object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),
    有键列表(keyed list),或者关联数组 (associative array)。
  • 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
    这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式
    在同样基于这些结构的编程语言之间交换成为可能。

5、JSON具有以下这些形式:

对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后
跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。

image.png
{ 
"name": "英语", 
"score": 78.3 
} 

数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用
“,”(逗号)分隔。

image.png
"courses": [ 
     { 
          "name": "英语", 
          "score": 78.3 
      }
 ]

值(value)可以是双引号括起来的字符串(string)、数值(number)、 true 、 false 、 null 、对象
(object)或者数组(array)。这些结构可以嵌套。

image.png

6、Gson原理

在这个序列化和反序列化的过程中,Gson充当的了一个解析器的角色

image.png

7、json 分析

编写一个JSON解析器实际上就是一个方法,它的输入是一个表示JSON的字符串,输出是结构化的对应到语言本身的数据结构
一般来说,解析过程包括词法分析和语法分析两个阶段


image.png

8、json 词法分析

  • BEGIN_OBJECT({)
  • END_OBJECT(})
  • BEGIN_ARRAY([)
  • END_ARRAY(])
  • NULL(null)
  • NUMBER(数字)
  • STRING(字符串)
  • BOOLEAN(true/false)
  • SEP_COLON(:)
  • SEP_COMMA(,)

9、Gson-JsonElement

image.png

10、JSON的JsonObject对象

JsonObject对象可以看成 name/values的集合,而这写values就是一个个JsonElement,他们的结构可以用如下图表示


image.png

11、json-流程简图

image.png

12、Gson-JsonDeserializer的工作原理

image.png image.png

13、Gson-TypeAdapter的工作原理

image.png image.png

14、JSON-适配器模式

image.png image.png image.png

15、json-整体流程

image.png

相关文章

网友评论

      本文标题:JSON 解析

      本文链接:https://www.haomeiwen.com/subject/dybhiltx.html