Content-Type: application/json
JSON是一种基于文本的数据交换格式,源于JavaScript,用于Web服务和其余链接的应用程序。html
JSON只定义了两种数据结构:对象和数组。一个对象是一组名称 - 值对,一个数组是值的列表。JSON定义了七种值类型:字符串,数字,对象,数组,真,假和空值。java
JSON具备如下语法。git
对象包含在大括号({}
)中,它们的名称 - 值对由逗号(,
)分隔,而且一对中的名称和值由冒号(:
)分隔。对象中的名称是字符串,而值能够是七种值类型中的任何一种,包括另外一个对象或数组。github
数组包含在方括号([]
)中,而且它们的值由逗号(,
)分隔。数组中的每一个值均可以是不一样的类型,包括另外一个数组或对象。编程
当对象和数组包含其余对象或数组时,数据具备树形结构。json
JSON常常用做通用格式,用于序列化和反序列化经过Internet互相通讯的应用程序中的数据。这些应用程序使用不一样的编程语言建立,并运行在很是不一样的环境中 JSON适用于这种状况,由于它是一个开放标准,它易于读写,而且比其余表示更紧凑。数组
RESTful Web服务普遍使用JSON做为请求和响应中的数据格式。HTTP标头用于指示请求或响应的内容是JSON数据数据结构
Content-Type: application/json
JSON表示一般比XML表示更紧凑,由于JSON没有结束标记。与XML不一样,JSON没有普遍接受的架构来定义和验证JSON数据的结构。架构
为了生成和解析JSON数据,有两种编程模型,它们与用于XML文档的编程模型类似。app
对象模型建立一个表示内存中JSON数据的树。而后能够导航,分析或修改树。这种方法是最灵活的,而且容许须要访问树的完整内容的处理。可是,它一般比流模式慢,须要更多内存。对象模型经过一次导航整个树来生成JSON输出。
流式传输模型使用基于事件的解析器,该解析器一次读取一个元素的JSON数据。解析器生成事件并在对象或数组开始或结束时,当它找到一个键或找到一个值时中止处理。每一个元素均可以被应用程序代码处理或丢弃,而后解析器继续进行下一个事件。这种方法适用于本地处理,其中处理元素不须要来自其他数据的信息。流式传输模型经过一次对一个元素进行函数调用来生成给定流的JSON输出。