json不是一个字符串?在后台传数据回来用的JSON.parse()转换成js对象,但是直接在js里面定义json如果是字符串的话为什么可以用json.属性 来获取里面的值? 表示现在都搞混了 一看到方法里面传参是{"key","value"}形式的 我就在想它到底是json还是Object?有大牛能详细的解答一下么
11条回答 默认 最新
- DS623089578 2017-10-09 09:03关注
首先,要搞清楚JSON和Object对象是什么关系;主要有以下的区别:
1、JSON是对象,但对象不一定是JSON
2、这一点是区别对象和JSON的重要关键点,对象的组成是由属性和属性值,也就是KEY->VALUE对组成
然而,还有一点是value可是是任意的数据类型,当value为一个函数的时候,这个时候叫做方法。而你通过
通过JSON.parse()传入的字符串并里面有VALUE为function的吗?得问一下。我想你不可能像下面的例子一样写这个被转换的字符串吧:
var a = '{name:"",say:function(){}}';
JSON.parse(a);
以上代码,是没有办法执行的。即使是服务器转换的JSON字符串,也没有把方法转换进这个字符串的。
3、在JSON对象中出现的value始终都不可能是一个函数,如果转换后添加进去方法,那就变成一个真正的JS对象了。
4、JSON是一种数据结构,并不是对象。因此没有方法。这个要仔细体会总之,JSON和对象的区别就在于有没有方法,在JS中某种意义上讲JSON.parse()转换的就是一个对象。
解决 6无用 1
悬赏问题
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 保护模式-系统加载-段寄存器
- ¥15 电脑桌面设定一个区域禁止鼠标操作
- ¥15 求NPF226060磁芯的详细资料