JSON

JSONKit unable to parse JSON with single quotes

字号+ 作者:H5之家 来源:H5之家 2017-06-22 12:01 我要评论( )

JSONKit unable to parse JSON with single quotes

一个项目中用到了JSONKit,一切都好好的,今天在做一个新的功能的时候,发现爆出了下面的错误

Error Domain=JKErrorDomain Code=-1 “Unexpected token, wanted ‘{‘, ‘}’, ‘[‘, ‘]’, ‘,’, ‘:’, ‘true’, ‘false’, ‘null’, ‘“STRING”’, ‘NUMBER’.” UserInfo=0x7c3de10 {JKAtIndexKey=22, JKLineNumberKey=1, NSLocalizedDescription=Unexpected token, wanted ‘{‘, ‘}’, ‘[‘, ‘]’, ‘,’, ‘:’, ‘true’, ‘false’, ‘null’, ‘“STRING”’, ‘NUMBER’.}

看到这个错误,首先想到的是给出的JSON字符串不正确,于是查看接口给出的JSON字符串

1 {"success":true,"msg":'操作成功'}

怎么看这个字符串都是一个正确的JSON字符串,为了验证,还把这个字符串复制到Safari的控制台和Firefox的Firebug中验证,都工作好好好的。

给出JSON的网页源代码中也没发现不可见字符,这下纠结了。

后来,仔细和以前接口返回的字符串对比,发现唯一不同的是以前使用的是双引号,这个接口使用的是单引号,会不会是这个原因?

修改JSON为:

1 {"success":true,"msg":"操作成功"}

果然一切OK了,看来JSONKit不支持单引号。这是JSONKit的问题么?

在JSONKit的这个Issue中找到了原因 https://github.com/johnezang/JSONKit/issues/75

去JSON的官网看了下,发现有下面这句话

A value can be a string in double quotes, or a number, or true or false or null, or an object or an array. These structures can be nested.

原来双引号才是JSON的标准,单引号是不规范的,虽然我们平时用单引号很多时候都是工作正常的。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Swfupload js parse JSON

    Swfupload js parse JSON

    2017-06-22 13:00

  • 小技巧之JSON.stringify()/parse()

    小技巧之JSON.stringify()/parse()

    2017-06-11 09:07

  • 在 Android 上使用 XML 和 JSON,第 1 部分: 在 Android 应用程序上研究 JSON 和 XM

    在 Android 上使用 XML 和 JSON,第 1 部分: 在 Android 应用程序上

    2017-04-14 17:02

  • JSON.parse与JSON.stringify

    JSON.parse与JSON.stringify

    2017-03-14 14:00

网友点评