JSON定义
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。它基于ECMA262语言规范(1999-12第三版)中JavaScript编程语言的一个子集。 JSON采用与编程语言无关的文本格式,但是也使用了类C语言(包括C, C++, C#, Java, JavaScript, Perl, Python等)的习惯,这些特性使JSON成为理想的数据交换格式。
.NET平台中就有一个开源JSON库LitJSON.dll ,功能非常强大。
JSON用于描述数据结构,以两种基本形式存在:
1. "名称/值"对的集合 不同语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),键列表(keyed list)等.
2. 值的有序列表 多数语言中被理解为数组(array).
JSON使用:
JSON比XML更轻巧,是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包。
简单的举个例子:这里来表示一个User对象,拥有userid,name,age属性
使用JSON的形式表示User对象:
{userid:1, name:"Simon", age:22};
如果想取它的值,得先把这个字符串赋给一个JavaScript变量,这样就可以直接使用对象的任一属性了。
JS代码:
<script>
var User = {userid:1, name:"Simon", age:22};
alert(User.name);
</script>
数组中可以包含数组,JSON也可表示这种复杂的形式:
JS代码:
<script>
var User = {userid:1, name:{CH:"寒冰",EN:"Simon"}, age:22};
alert(User.name.CH); //寒冰
</script>
再来看JSON对象 删除 元素的功能:
JS代码:
<script>
var User = {userid:1, name:"寒冰, age:22};
delete User.name; //删除name
alert(User.name); //undefined
</script>
用JSON表示更为复杂的数组形式:
JS代码:
<script>
var UserList =
[
{userid:1, name:{CH:"寒冰",EN:"Simon"}, age:22},
{userid:2, name:{CH:"天意",EN:"Ylem"}, age:20},
{userid:3, name:{CH:"小颢",EN:"Caro"}, age:28},
{userid:4, name:{CH:"倾听",EN:"Gaya"}, age:20},
{userid:5, name:{CH:"小虫",EN:"Jack"}, age:25}
]
alert(UserList[0].name.EN); //Simon
</script>
获取值时,除了使用"."引用属性外,也可使用:
UserList[0]["name"]["EN"]; 或者 UserList[0].name["EN"];
总结:
1.对象是一个无序的“‘名称/值’对”集合。一个对象以“{”开始,“}”结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。
2.数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。
3.值(value)可以是双引号括起来的字符串(string)、数值(number)、true
、false
、 null
、对象(object)或者数组(array)。这些结构可以嵌套。
4.字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。