JavaScript基础之JSON
来源:互联网 发布:知豆可以开多少公里 编辑:程序博客网 时间:2024/05/16 09:00
JSON是JavaScript Object Notation的缩写,是一种数据交换格式。
在JSON中,一共就这么几种数据类型:
1.number:和JavaScript的number完全一致;
2.boolean:就是JavaScript的true或false;
3.string:就是JavaScript的string;
4.null:就是JavaScript的null;
5.array:就是JavaScript的Array表示方式—[];
6.object:就是JavaScript的{…}表示方式
并且JavaScript还定死了字符集必须是UTF-8,为了统一解析,JSON的字符串规定必须用双引号“”,object的键也必须用双引号“”。
序列化
var xiaoming={name:'小明',age:14,gender:true,height:1.65,grade:null,'middle-school':'\"W3C\"Middle School',skills:['JavaScript','Java','Python','Lisp']};JSON.stringify(xiaoming);
要输出得好看一些,可以加上参数,按缩进输出:
JSON.stringify(xiaoming,null,'');
结果
{"name":"小明","age":14,"gender":true,"height":1.65,"grade":null,"middle-school":"\"W3C\"Middle School","skills":[ "JavaScript", "Java", "Python", "Lisp"]}
第二个参数用于控制如何筛选对象的键值,如果我们只想输出指定的属性,可以传入Array:
JSON.stringify(xiaoming,['name','skills'],' ');
结果:
{ "name":"小明", "skills":[ "JavaScript", "Java", "Python", "Lisp" ]}
还可以传入一个函数,这样对象的每个键值对都会被函数先处理:
function convert(key,value){ if(typeof value==='string'){ return value.toUpperCase(); }}JSON.stringify(xiaoming,convert,' ');
上面的代码把所有属性值都变成大写:
{ "name":"小明", "age":14, "gender":true, "height":1.65, "grade":null, "middle-school":"\"W3C\" MIDDLE SCHOOL", "skills":[ "JAVASCRIPT", "JAVA", "PYTHON", "LISP" ]}
如果我们还想要精确控制如何序列化小明,可以给xiaoming定义一个toJSON()的方法,直接返回JSON应该序列化的数据:
var xiaoming={ name:"小明", age:14, gender:true, height:1.65, grade:null, 'middle-school':'\"W3C\" Middle School', skills:['JavaScript','Java','Python','Lisp'], toJSON:function(){ return{ 'Name':this.name, 'Age':this.age }; }};JSON.stringify(xiaoming);//'{"Name":"小明","Age":14}'
反序列化
拿到一个JSON格式的字符串,我们直接用JSON.parse()把它变成一个JavaScript对象:
JSON.parse('[1,2,3,true]');//[1,2,3,true]JSON.parse('{"name":"小明","age":14}');//Obejct{name:'小明',age:14}JSON.parse('true');//trueJSON.parse('123.45');//123.45
JSON.parse()还可以接收一个函数,用来转换解析出的属性:
JSON.parse('{"name":"小明","age":14}',function(key,value){ if(key==='name'){ return value+'同学'; } return value;});
阅读全文
0 0
- JavaScript基础之JSON
- JavaScript基础-JSON
- JavaScript之JSON详解
- JavaScript之JSON详解
- JavaScript之JSON详解
- javascript 之 Math JSON
- JavaScript之JSON
- JavaScript之JSON详解
- javascript 之 Math JSON
- javascript之JSON引入
- JavaScript之JSON用法
- JavaScript之JSON
- javascript之JSON对象
- JavaScript基础——JSON
- JavaScript基础之基础
- JSON详细学习之JSON in JavaScript
- JavaScript知识点之JSON.parse
- JavaScript 面向对象之JSON
- 安装MySQL遇到的问题
- 数据结构-单链表按值删除
- Pom.xml详解
- zookeeper集群搭建
- jQuery实现仿淘宝tab栏切换效果
- JavaScript基础之JSON
- PAT A1057. Stack (30)
- ios 设置webview透明背景
- IOCP完成端口的一个简单封装类
- 转 Windows+VS2013爆详细Caffe编译安装教程
- 将Linux的私钥文件.id转换为Putty的ppk文件
- Linux平台下停止后台进程脚本编写
- 数据结构与算法——希尔排序
- (JS)LeetCode之路001-Two Sum