不同的编程语言中
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格局。它使得人们很容易的进行阅读和编写。同时也便利了机器进行解析和生成。它是基于 , Standard ECMA-262 3rd Edition - December 1999 的一个子集。 JSON给与完全独立于措施语言的文本格局,但是也使用了类C语言的习惯(包孕C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为抱负的数据交换语言。
JSON基于两种布局:
JSON[1] 布局有两种布局[2]
json简单说就是javascript中的东西和数组,所以这两种布局就是东西和数组两种布局,通过这两种布局可以暗示各类庞大的布局
1、东西:东西在js中暗示为“{}”括起来的内容,数据布局为 {key:value,key:value,...}的键值对的布局,在面向东西的语言中,key为东西的属性,value为对应的属性值,所以很容易理解,取值要领为 东西.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、东西几种。
2、数组:数组在js中是中括号“[]”括起来的内容,数据布局为 ["java","javascript","vb",...],取值方法和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、东西几种
颠末东西、数组2种布局就可以组合成庞大的数据布局了。
“名称/值”对的调集(A collection of name/value pairs)。差此外编程语言中,它被理解为东西(object),纪录(record),布局(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。 值的有序列表(An ordered list of values)。在大部分语言中,它被实现为数组(array),矢量(vector),列表(list),序列(sequence)。
这些都是常见的数据布局。目前,绝大部分编程语言都以某种形式撑持它们。这使得在各类编程语言之间交换同样格局的数据成为可能。
JSON具有以下这些形式:
东西(object) 是一个无序的“‘名称/值’对”调集。一个东西以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔断绝分手。
数组(array) 是值(value)的有序调集。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔断绝分手。
值(value) 可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、东西(object)或者数组(array)。这些布局可以嵌套。
字符串(string) 是由双引号包抄的任意数量Unicode字符的调集,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。
JSON的字符串(string)与C或者Java的字符串非常相似。
数值(number) 也与C或者Java的数值非常相似。只是JSON的数值没有使用八进制与十六进制格局。
同时,可以在任意符号之间添加空白。
访谒数据
尽管看起来不明显,但是上面的长字符串实际上只是一个数组;将这个数组放进 JavaScript变量之后,就可以很轻松地访谒它。实际上,只需用点号暗示法来暗示数组元素。所以,要想访谒 programmers 列表的第一个条目的姓氏,只需在 JavaScript 中使用下面这样的代码:
people.programmers[0].lastName;
注意,数组索引是从零开始的。所以,这行代码首先访谒 people变量中的数据;然后移动到称为 programmers的条目,再移动到第一个记录([0]);最后,访谒 lastName键的值。功效是字符串值 “McLaughlin”。 下面是使用同一变量的几个示例。
people.authors[1].genre//Valueis"fantasy"
people.musicians[3].lastName//Undefined.Thisreferstothefourthentry,andthereisn‘tone
people.programmers[2].firstName//Valueis"Elliotte"
操作这样的语法,可以措置惩罚惩罚任何 JSON 格局的数据,而不需要使用任何特别的 JavaScript 工具包或 API。
和XML的对照
可读性
JSON和XML的可读性可谓八两半斤,一边是简易的语法,一边是规范的标签形式,很难分出胜负。
可扩展性
XML天生有很好的扩展性,JSON固然也有,没有什么是XML可以扩展而JSON却不能扩展的。不过JSON在Javascript主场作战,可以存储Javascript复合东西,有着xml不成相比的优势。
编码难度
XML有丰富的编码工具,好比Dom4j、JDom等,JSON也有供给的工具。无工具的情况下,相信熟练的开发人员一样能很快的写出想要的xml文档和JSON字符串,不过,xml文档要多很多布局上的字符。
解码难度
XML的解析方法有两种:
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/30988.html