js的字面量对象和JSON的区别
js的字面量对象和JSON的区别
一、总结
一句话总结:
a、json对象是json字面量的子集
b、json对象把key用双引号括起来
c、json对象的value限定为数字、字符串、布尔值和NULL中的一种
1、当js字面量对象中包含函数对象时,转换成json 再转换回来,会发生什么?
函数被去掉了,因为json的value限定为数字、字符串、布尔值和NULL中的一种
//js字面量方式创建对象, var zhuBaJie={ name:'猪八戒', age:3, say:function () { console.log('我叫'+this.name+', 今年'+this.age+'岁。'); } }; console.log(zhuBaJie.name); zhuBaJie.say(); console.log(JSON.stringify(zhuBaJie));//{"name":"猪八戒","age":3} console.log(JSON.parse(JSON.stringify(zhuBaJie)));
二、js的字面量对象和JSON的区别
转自或参考:javascript - js的字面量对象和JSON的区别 - SegmentFault 思否
https://segmentfault.com/q/1010000006912979?_ea=1175183
用JSON官网的表述,JSON( (JavaScript Object Notation))是JavaScript对象字面量的一个子集,是一种轻量的数据交换格式。
在接口调用过程中所说的json数据往往不是指js的对象,而是指的json字符串。在js向服务器提交json格式的数据,实质是将js的对象转换成json字符串再放在http请求中进行传递。当接收到服务端响应的json格式的数据时,接收到的也是json字符串,底层会将json字符串转换成js的对象以便操作。
其实json对象也是js对象的一种表现形式,或者说json是限定的js对象也行。说白了,无非就是把key用双引号括起来,value限定为数字、字符串、布尔值和NULL中的一种,再考虑下对象和数组嵌套情况的,比较特殊的js对象而已。所以转换什么的,框架顺便就弄了呗。
2、当js字面量对象中包含函数对象时,转换成json 再转换回来,会发生什么
函数被去掉了,因为json的value限定为数字、字符串、布尔值和NULL中的一种
//js字面量方式创建对象, var zhuBaJie={ name:'猪八戒', age:3, say:function () { console.log('我叫'+this.name+', 今年'+this.age+'岁。'); } }; console.log(zhuBaJie.name); zhuBaJie.say(); console.log(JSON.stringify(zhuBaJie)); console.log(JSON.parse(JSON.stringify(zhuBaJie)));
版权申明:欢迎转载,但请注明出处
一些博文中有一些参考内容因时间久远找不到来源了没有注明,如果侵权请联系我删除。
在校每年国奖、每年专业第一,加拿大留学,先后工作于华东师范大学和香港教育大学。
2024-10-30:27岁,宅加太忙,特此在网上找女朋友,坐标上海,非诚勿扰,vx:fan404006308
AI交流资料群:753014672