【问题标题】:What characters arent allowed in a JSON.parse?JSON.parse 中不允许使用哪些字符?
【发布时间】:2017-07-18 03:50:15
【问题描述】:

所以在收到我的回复后,我不断收到解析错误。有没有非法字符之类的?

这是回复

[{"businessID": ChIJ49DlQ5NiwokRQ_noyKqlchQ,"latitude": 40.733038,"longitude":-73.6840691,"address":"1201
Jericho Turnpike, New Hyde Park","businessname":"SUBWAY®Restaurants"},{"businessID": ChIJZfl6R5NiwokRZo7PU4NPoMY
,"latitude": 40.7329359,"longitude":-73.684513,"address":"1113 Jericho Turnpike, New Hyde Park","businessname"
:"Gino's"},{"businessID": ChIJcbpnRJNiwokRrtbOKe7HQo0,"latitude": 40.733049,"longitude":-73.684006,"address"
:"1203 Jericho Turnpike, New Hyde Park","businessname":"Wong's Garden"},]

这是我处理响应的函数。我确定它会在警报之前中断,因为警报没有被触发

var datad = $(msg).text();
    console.log(datad);
    var resultstring = datad.replace(',]',']');
    var JsonParseData = JSON.parse(resultstring);
        alert(JsonParseData); ///BREAKING BEFORE THIS LINE

【问题讨论】:

  • 双引号对象中businessID的值
  • 还有一个尾随的逗号
  • @AnthonySottile 我正在删除行中的逗号....var resultstring = datad.replace(',]',']');
  • Java 不是 Javascript。请注意使用正确的标签。我已经修好了。
  • 看起来您在“地址”部分有随机换行符,而在“businessID”部分的变量结果字符串中缺少引号。您可以在此处检查 JSON 格式:ietf.org/rfc/rfc4627.txt

标签: javascript php google-places-api google-geocoding-api


【解决方案1】:

几个错误。

  1. 需要将字符串放在双引号中(")。将"businessID": ChIJ49DlQ5NiwokRQ_noyKqlchQ 替换为"businessID":"ChIJ49DlQ5NiwokRQ_noyKqlchQ"

  2. 删除下一行末尾的, "businessname":"Wong's Garden"},]

【讨论】:

    【解决方案2】:

    JSON 的键值需要引号。 JSON 数据中的引号减少了,最后多了一个逗号和一个回车

    这样是对的:

    [{"businessID":"ChIJ49DlQ5NiwokRQ_noyKqlchQ","latitude":"40.733038","longitude":"-73.6840691","address":"1201 Jericho Turnpike, New Hyde Park","businessname":"SUBWAY®Restaurants"},{"businessID":"ChIJZfl6R5NiwokRZo7PU4NPoMY","latitude":"40.7329359","longitude":"-73.684513","address":"1113 Jericho Turnpike, New Hyde Park","businessname":"Gino's"},{"businessID":"ChIJcbpnRJNiwokRrtbOKe7HQo0","latitude":"40.733049","longitude":"-73.684006","address":"1203 Jericho Turnpike, New Hyde Park","businessname":"Wong's Garden"}]

    【讨论】:

    • 你为什么把数字放在引号里?
    • 哦,对不起,数字不需要引号
    【解决方案3】:

    您的回复是无效的 json 格式,原因有两个:

    • “businessID”的值需要引号。
    • JSON 的最后一个对象后不应有逗号(您的替换字符串函数可解决此问题)。

    我推荐你使用这个 JSON 工具包:

    【讨论】:

      猜你喜欢
      • 2016-05-05
      • 2010-12-30
      • 2011-10-30
      • 1970-01-01
      • 1970-01-01
      • 2018-02-07
      • 1970-01-01
      • 2021-10-18
      相关资源
      最近更新 更多