sunshine
管理员
管理员
  • 最后登录2023-10-30
  • 发帖数170
  • 社区居民
阅读:7366回复:0

$.parseJSON 或 JSON.parse转换失败,但格式正确

楼主#
更多 发布于:2017-09-20 15:26

login.html:1 Uncaught SyntaxError: Unexpected token ' in JSON at position 1
    at JSON.parse (<anonymous>)
    at Function.jQuery.parseJSON (jquery.js:8520)
    at login.html:30


代码如下:

var str = "{'uname':'doubleyong','age':'18'}";
   var jsonObj= $.parseJSON(str);
// 字符串转换对象(json)
    console.log(jsonObj.name);


为什么会出错了,格式没有错呀?

找了很久,最后终于找到原因了!!!!!!!!!!!!

在jquery手册中,关于parseJSON方法的介绍中,这样写到:


传入一个畸形JSON字符串会抛出一个异常。比如下面的都是畸形的JSON字符串:
  • {test: 1} ( test 没有包围双引号
  • {'test': 1} (使用了单引号而不是双引号

另外,如果你什么都不传入,或者一个空字符串、null或undefined,parseJSON都会返回 null 。
原来,在转换时,要求键需要用双引号引起来,而使用单引号或没有引号都会在转换时报错。
游客


返回顶部

公众号

公众号