• JSON.parse解析单引号名值对报错


    今天整理代码的时候发现JSON.pare解析时会报了一个错误,而且很难找原因,调试了几分钟没有成功,猜测可能是单双引号引起的错误。修改了单双引号后程序正常运行了,现在记录下这个bug。

    关于JSON.parse()的用法可以参考这里   https://technet.microsoft.com/zh-cn/sysinternals/cc836466(en-us,VS.85).aspx

    正题如下…………………………………………………………………………

    首先要区分json和js对象,在javascript中json的名和值都需要引号包裹的,比如{"a":"b"}; 而js对象,只有值必须包裹名可以包裹也可以不包裹,比如{a:"b"}这样是正确的{"a":"b"}这样也是正确的。

    1、名值对使用单引号包裹

      因为平常都是用双引号包裹字符串的,所以我把要转化的字符串自然就写成这样子了。

    var str="{'a':'1'}"

      然后当我兴奋的使用JSON.parse接收对象的时候,呃,报错了

    var json=JSON.parse(str);

      看到这个结果,也看不出来原因。着实郁闷了一会。忽然想到是不是单双引号的问题,对调下发现成功了。

    2、名值对使用双引号包裹

    var str='{"a":"1"}';
    var json=JSON.parse(str);

      名值对使用双引号包裹发现成功了。

      

    3、全部使用双引号包裹,当然这时候引号要转义

    var str="{"a":"1"}";
    var json=JSON.parse(str);

      结果也是成功的

     

    结论:使用JSON的parse将json形式的字符串转化为json的时候,名值对都必须使用双引号包裹

    ps:如果有哪位大神知道为什么,请邮件小弟

  • 相关阅读:
    View使用总结
    IPC机制总结
    Activity 启动模式总结
    StrictMode 严格模式
    dumpsys, traceView调试命令
    Monkey命令及调试
    Android Studio使用tips
    Java常用数据结构Set, Map, List
    JavaScript String 小球重力弹回
    JavaScript Array 数组方法汇总
  • 原文地址:https://www.cnblogs.com/gg1234/p/5501844.html
Copyright © 2020-2023  润新知