JSON是道格拉斯·克罗克福特(Douglas Crockford)在2001年开始推广使用的数据格式,在2005年-2006年正式成为主流的数据格式,雅虎和谷歌就在那时候开始广泛地使用JSON格式。
JSON由两种结构组成:
“键-值对”的无序集合。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
值的有序列表。在大部分语言中,它被理解为数组(array)。
这些都是常见的数据结构,事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。
JSON虽然是使用Javascript语法来描述数据对象,但是JSON仍然独立于语言和平台,当前很多编程语言都支持JSON格式数据的生成和解析。
JSON文件中的数据以简单文本格式存储,可以在任何文本编辑器中查看其内容。
JSON应用领域
WEB开发 - JSON最开始被广泛的应用于WEB应用的开发。不过当前JSON使用在JavaScript、Java、Node.js应用的情况比较多,PHP、C#等开发的WEB应用主要还是使用XML。
NoSQL数据库 - 相对于传统的关系型数据库,一些基于文档存储的NoSQL非关系型数据库选择JSON作为其数据存储格式,比较出名的产品有:MongoDB、CouchDB、RavenDB等。
JSON与XML比较
JSON与.XML都是数据交换格式,具有 "自我描述" ,易于理解,并且数据都是有层次的结构,都可以被大多数编程语言使用。下面是它们两者间的区别:
JSON与XML最大的不同在于XML是一个完整的标记语言,而JSON不是,所以XML更容易传输更加复杂的数据,但这使得XML在程序解析上比JSON需要花更多的功夫。
XML利用标记语言的特性提供了绝佳的延展性(如XPath),在数据存储、扩展及高级检索方面具备对JSON的优势
JSON比XML更加小巧,以及浏览器的内建快速解析支持,使得其更适用于网络数据传输领域。
JSON实例
下面是一个简单的JSON实例:
{
"name": "中国",
"province": [{
"name": "黑龙江",
"cities": {
"city": ["哈尔滨", "大庆"]
}
}, {
"name": "广东",
"cities": {
"city": ["广州", "深圳", "珠海", "中山"]
}
}, {
"name": "台湾",
"cities": {
"city": ["台北", "高雄", "桃园"]
}
}, {
"name": "新疆",
"cities": {
"city": ["乌鲁木齐"]
}
}]
}