昏黄烛火轻摇晃 2017-10-09 03:05 采纳率: 61.5%
浏览 8742
已结题

js里面json和Object对象的区别?

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()转换的就是一个对象。
    
    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料