介t绍
JSON:JavaScript Object Nation(JavaScript 对象表示语法)
JSON从本质上来说是javascript的数据类型,存放的是的类似于键值对
JSON语法规则
- 数据类似以键值对的形式
- 数据由逗号分割
- 花括号保存对象
- 方括号保存数组
JSON 的值可以是
- 数字(整数或浮点数)
- 字符串(在双引号中)
- 逻辑值(true 或 false)
- 数组(在方括号中)
- 对象(在花括号中)
- null
JSON对象
JSON 对象在花括号中书写:
对象可以包含多个名称/值对:
{ "firstName":"zhang" , "lastName":"san" }
这一点也容易理解,与这条 JavaScript 语句等价:
firstName = "zhang" lastName = "san"
JSON数组
JSON 数组在方括号中书写:
数组可包含多个对象:
{ "employees": [ { "firstName":"John" , "lastName":"Doe" }, { "firstName":"Anna" , "lastName":"Smith" }, { "firstName":"Peter" , "lastName":"Jones" } ] }
在上面的例子中,对象 "employees" 是包含三个对象的数组。每个对象代表一条关于某人(有姓和名)的记录。
JSON一对一关系
<script type="text/javascript">
/*json类型:一对一*/
var objOneToOne = {uname:"张三",age:21,card:[{id:111,password:123456}]};
var card = objOneToOne.card;
for(var i=0;i<card.length;i++){
console.log(card[i].id);
console.log(card[i].password);
}
</script>
JSON一对多关系
<script type="text/javascript">
/*json类型:一对多*/
var objOneToMore={uname:"张三",card:[{id:112,password:123456},{id:113,password:123456},{id:114,password:123456}]};
var card = objOneToMore.card;
for(var i=0;i<card.length;i++){
console.log(card[i].id);
console.log(card[i].password);
}
</script>
JSON文本转化为JavaScript对象
由于 JSON 语法是 JavaScript 语法的子集,所以JavaScript 函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象。
eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然后生成 JavaScript 对象。必须把文本包围在括号中,这样才能避免语法错误。