ajax json 学习笔记
json = { }
JSON 字符串必须使用双引号,单引号会出现错误
三种类型:
简单值:字符串、数值、布尔值、null
对象:无序的键值对儿
数组:有序的值列表
解析:JSON.eval() //最早期 会执行恶意代码 不建议使用
JSON.stringify(); // 转化成 json 对象
JSON.parse(); // 转化成JS对象 object
解析 JSON 需要大写
//js对象
var book = {
title:"javascript",
authoers:["taoqun"],
edition:3,
year:2016
}
// 解析成 JSON对象
var jsontext = JSON.stringify(book);
//jsontext 的值为:
{"title":"javascript","authoers":["taoqun"],"edition":3,"year":2016}
// 解析 javascript 对象 JSON对象才能解析
var parse_value = JSON.parse(jsontext);
试验:
var s = {
"ss":123,
"asd":"asd",
"dww":[123,123],
"dfg":123
}
console.log(s);
s = JSON.stringify(s);
console.log(s);
var a =JSON.parse(s);
console.log(a);
输入结果:
Object {ss: 123, asd: "asd", dww: Array[2], dfg: 123} //js对象 键会去掉双引号
{"ss":123,"asd":"asd","dww":[123,123],"dfg":123} //json对象 键会加上双引号
Object {ss: 123, asd: "asd", dww: Array[2], dfg: 123} //JS对象 键会去掉双引号
序列化选项:
1、过滤结果
数组 JSON.stringify( js对象 , [数组] ); 只返回包含数组对应属性的值;
函数 JSON.stringify( js对象 , function( key ,value ) );函数接受两个参数 属性 和 属性值 或(键 和 键值) //属性只能是字符串
数组:
var book = {
"title":"hello",
"name":"taoqun",
age:24,
year:2016
}
var jsontext = JSON.stringify(book,["title","age"]);
// jsontext 的返回值
{"title":"hello","age":24}
函数:
var book = {
"title":"hello",
"name":"taoqun",
age:24,
year:2016,
list:[1,2,34]
}
var jsontext = JSON.stringify(book,function(key,value){
switch(key){
case "list":
return value.join(",");
case "year":
return 2017;
case "name":
return "jay";
default:
return value;
}
})
console.log(jsontext);
// 返回值:
{"title":"hello","name":"jay","age":24,"year":2017,"list":"1,2,34"}
2、字符串缩进
var jsontext = JSON.stringify(book,null,4);
//返回值键值 缩进四个字符
var jsontext = JSON.stringify(book,null,"--");
//返回值键值 用"--" 显示缩进
3、toJSON() 方法
优先返回toJSON
//待续
解析选项:
JSON.parse(book,function(key,value){
})