昏黄烛火轻摇晃 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 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题