json是javascript的子类,也是作为更好的互联网传输结构化数据格式逐渐取代xml,因此要理解json,重要的是理解它是一种数据格式,不是一种编程语言。
语法
//javascript var object = { "name":"lihua", "age":"20", "gender":undefined } //json { "name":"lihua", "age":"20", }
由于json是数据格式,所以没有变量的概念,同时键值必须使用双引号。
json的stringify与parse方法(序列化与解序)
早期的json解析器基本上都使用了eval()函数,但是可能会执行恶意代码(eval函数可以解析,解释并返回js对象。ecmascript 5再后来规范了json行为,定义了全局对象json,并添加了两个json方法:stringify()和parse()。
var person = { name:"lihua", age:"18", hobby:[ "basketball", "badminton" ], action:function(){ alert("help") } } var jsontext = json.stringify(book) //{"name":"lihua","age":"18","hobby":["basketball","badminton"]} var jstext = json.parse(jsontext);
在序列化时,函数与原型对象成员都将被忽略(json只接受两种复杂类型对象与数组),值为undefined的属性值也会被跳过。
序列化选项与结构化选项
var person = { name:"lihua", age:"18", hobby:[ "basketball", "badminton" ] } //stringify第二个参数为过滤项 var jsontext1 = json.stringify(person,["name","hobby"]); //{"name":"lihua","hobby":["basketball","badminton"]} var jsontext2 = json.stringify(person,function(key,value){ switch(key){ case "name": return "zhoujielun"; case "age": return 17; case "hobby": return value.join(",") default: return value } }); //{"name":"zhoujielun","age":17,"hobby":"basketball,badminton"} //stringify第三个参数为字符串缩进 var jsontext3 = json.stringify(person,null,"--"); // { // --"name": "lihua", // --"age": "18", // --"hobby": [ // ----"basketball", // ----"badminton" // --] // }
//json.parse与stringify相同
如对本文有疑问, 点击进行留言回复!!
微信小程序wx.scanCode扫描条形码,偶尔出现条形码不正确导致查询失败
Android 入门第七讲01-数据存储(数据存储概述,文件存储(raw和asserts目录读写,data/data/包名目录读写,sdcard目录读写),SharedPreferences读写)
vue-axios系列:axios拦截器,配置请求头,配置请求参数
Vuejs 针对 安卓低版本 、ios9.x 不兼容 ES6语法导致失效解决方法
网友评论