前言:
啥?JSON谁不会用啊,我天天在用,不就是JSON.stringify()把一个js对象转成json字符串;JSON.parse()把一个js字符串转成js对象么~~。客官,莫急,先把刀收起~,且听我细说,要是这么简单,还写这个干啥,你说是不。
的确,JSON工具也只有这两个方法,是不复杂,不过要想用来这两个方法,还是得下一点工夫滴~。咱先说一下json的基本知识和语法吧
若有基础的童鞋可直接阅读下篇文章:
你真的会用js中的JSON(二)?
json基本知识
json全称:JavaScript Object Notation。是一种数据交换的文本格式,2001年由 Douglas Crockford 提出,目的是取代繁琐笨重的 XML 格式。额~~ 过于简单,直接进入语法吧~
json语法
- 数据在名称/值对中
- 每个数据之间用逗号分隔
- 大括号用于保存对象
- 中括号用于保存数组
注意几个点:
- 在js中,只能是普通对象或者是数组当做值,函数,正则,日期对象都不可以
- 普通数据也只能是字符串,数值,布尔,null当做值,undefined不可以,特殊的数值如:NaN,Infinity等都不可充当值
- 键必须在双引号里面,单引号不可以。字符串的值也只能放在双引号里,单引号也不可以
- 数组或者对象最后一个成员不能加逗号
// 以下都是合法的 ['true', '1', '张三'] {"name":"张三","age":10,"address":"北京"} [ {"name":"张三","age":10,"address":"北京"}, {"name":"李四","age":20,"address":"上海"}, {"name":"王五","age":35,"address":"深圳"} ] {"cities":["北京","上海","深圳"]} {"name":"","address":null,"cities":[],"info":{}} // ''、null、[]、{} 也是合法的
// 下面的不合法 {"name": "张三", "getName": function () {}} // 不能有函数 {name: "张三", age: 10} // 键名必须放在双引号中 ["a", "b", "c",] // 最后一个成员不能加逗号
JSON对象
进入正题,看一下js给我们提供的JSON对象的用法吧,它主要是通过两个方法来处理json数据的~
JSON.stringify()、JSON.parse()
JSON.stringify()
stringify()方法是把一个对象转成json字符串,且以后可以通过parse()方法还原成对象
// 把普通的对象转成json字符串 var person = { name: '王小五', age: 10, city: '北京' } JSON.stringify(person) // {"name":"王小五","age":10,"city":"北京"} // 把数组转成json字符串 var array = [1, '', false, 'true'] JSON.stringify(array) // [1,"",false,"true"] // 把原始数据转成json字符串 JSON.stringify('to json') // "to json" JSON.stringify(1) // "1" JSON.stringify(false) // "false"
JSON.parse()
parse()方法是把一个json字符串转成js对象
var json = '{"name":"王小五","age":10,"city":"北京"}' var obj = JSON.parse(json) con) // '王小五'
由于篇幅有限,本期分成两篇文章,下一篇文章介绍JSON的更高级用法。
你真会用js中的JSON(二)?
关注我,` 知码前端 ` 获取更多知识~~