欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JSON简介

程序员文章站 2022-06-17 18:51:42
...

来源:https://javaee.github.io/tutorial/jsonp001.html

JSON简介

JSON是一种基于文本的数据交换格式,源于JavaScript,用于Web服务和其他连接的应用程序。

 

JSON语法

JSON只定义了两种数据结构:对象和数组。一个对象是一组名称 - 值对,一个数组是值的列表。JSON定义了七种值类型:字符串,数字,对象,数组,真,假和空值。

JSON具有以下语法。

  • 对象包含在大括号({})中,它们的名称 - 值对由逗号(,)分隔,并且一对中的名称和值由冒号(:)分隔。对象中的名称是字符串,而值可以是七种值类型中的任何一种,包括另一个对象或数组。

  • 数组包含在方括号([])中,并且它们的值由逗号(,)分隔。数组中的每个值都可以是不同的类型,包括另一个数组或对象。

  • 当对象和数组包含其他对象或数组时,数据具有树形结构。

  • JSON的使用

    JSON经常用作通用格式,用于序列化和反序列化通过Internet互相通信的应用程序中的数据。这些应用程序使用不同的编程语言创建,并运行在非常不同的环境中 JSON适用于这种情况,因为它是一个开放标准,它易于读写,并且比其他表示更紧凑。

    RESTful Web服务广泛使用JSON作为请求和响应中的数据格式。HTTP标头用于指示请求或响应的内容是JSON数据

    Content-Type: application/json

    JSON表示通常比XML表示更紧凑,因为JSON没有结束标记。与XML不同,JSON没有广泛接受的架构来定义和验证JSON数据的结构。

    生成和解析JSON数据

    为了生成和解析JSON数据,有两种编程模型,它们与用于XML文档的编程模型相似。

    • 对象模型创建一个表示内存中JSON数据的树。然后可以导航,分析或修改树。这种方法是最灵活的,并且允许需要访问树的完整内容的处理。但是,它通常比流模式慢,需要更多内存。对象模型通过一次导航整个树来生成JSON输出。

    • 流式传输模型使用基于事件的解析器,该解析器一次读取一个元素的JSON数据。解析器生成事件并在对象或数组开始或结束时,当它找到一个键或找到一个值时停止处理。每个元素都可以被应用程序代码处理或丢弃,然后解析器继续进行下一个事件。这种方法适用于本地处理,其中处理元素不需要来自其余数据的信息。流式传输模型通过一次对一个元素进行函数调用来生成给定流的JSON输出。