2017-07-18 154 views
0

因此,收到我的回应后,我不断收到解析错误。有没有非法字符?JSON.parse中不允许使用什么字符?

这里是响应

[{"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 
+2

双引号在对象中的businessID的值 –

+1

还有一个尾随逗号 –

+0

@AnthonySottile Im删除逗号在行.... var resultstring = datad.replace(',]',']'); – Carlitos

回答

4

几个错误。

  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"}]

+1

为什么你把数字放在引号中? – ajb

+0

oo,对不起,数字不需要引号 – vincenth520

1

你的反应是有两个原因的无效JSON格式:

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

,我建议你使用这个JSON工具包:

相关问题