JSON语法基础

首先需要知道,什么是JSON?

JSON的定义: JavaScript Object Notation(JavaScript 对象表示法),JSON 是存储和交换文本信息的语法,独立于语言。类似 XMLJSON 比 XML 更小、更快,更易解析,具有自我描述性,更易理解的特点。

JSON就是一串字符串,只不过元素会使用特定的符号标注。

  • {} 双括号表示对象

  • [] 中括号表示数组

  • "" 双引号内是属性或值

  • :表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象)

{"name": "Dcloud"}可以理解为是一个包含nameDcloud的对象;
[{"name": "mui"},{"name": "html5+"}]就表示包含两个对象的数组。

通过JavaScript,您可以创建一个对象数组,并像这样进行赋值:

var employees = [
    { "firstName":"John" , "lastName":"Doe" }, 
    { "firstName":"Anna" , "lastName":"Smith" }, 
    { "firstName":"Peter" , "lastName": "Jones" }
];

可以像这样访问 JavaScript 对象数组中的第一项:
employees[0].lastName;
返回的内容是:
Doe
可以像这样修改数据:
employees[0].firstName = "Jonatan";

JSON.stringify和JSON.parse

这里需要特别说明的是两个非常有用的方法:JSON.stringify和JSON.parse。我们可以通过JSON.stringify将json对象转成json字符串,方便用alert,console.log打印出来,可以方便的查看json对象内容。反之我们可以通过JSON.parse将json字符串转成json对象以便可以方便对json对象取值。例:

// 场景1
var data = {
    name: 'jiaonizuoren',
    age: 23
}
console.log(typeof data); // "object"
console.log(JSON.stringify(data)) // "{"name":"jiaonizuoren","age":23}"

// 场景2
var str = '{"name":"jiaonizuoren","age":23}';
console.log(typeof str)  // "string"
console.log(JSON.parse(str).name) // "jiaonizuoren"

上面的例子列举了两种应用场景,大家根据自己的情况合适的选取正确的方法。

运算符[ ] 和 .

[ ]可以用于数组和对象取值,数组中按下边取值。

var array=["one","two","three","four"];
array[0];

对象属性取值时,当我们不知道属性名或属性名本身包含点(.)的键,应当使用[ ]

for(var key in obj){
   console.log(key + ":" + obj[key]);
}
var obj={
  id:"obj",
  "self.ref":ref
}
console.log(obj["self.ref"]);

.运算符的左边为一个对象,右边为属性名。如:obj.id

可以动态访问属性:

var key="property";
console.log(key); //property

var obj={
  property:"hello world"
}

console.log(obj[key]);  //hello world

数组的map方法:

var array=[1,2,3,4,5];
array.map(function(item){
  return item*2;
});

数组map方法可以接受一个匿名函数,数组中每个元素都会调用这个匿名函数,并且讲返回结果放在一个数组中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值