字符串进行JSON解析,javascript运行时无效字符

时间:2018-11-06 17:01:52

标签: javascript jquery

我试图读取此字符串中的属性值,当我尝试对其进行解析时,得到无效字符。你能告诉我这里怎么了

data = [{'title':'location 1','lat':'29 .769730','lng':'-95.257181','desc':'Apartments',},{'title':'location 2','lat':'29 .852264','lng':'-95.469999','desc':'位置描述',},];

var test = $ .parseJSON(data)l

错误-http://localhost:17765/Loc/index中第138行第13列的未处理异常 0x800a03f6-JavaScript运行时错误:无效字符

2 个答案:

答案 0 :(得分:0)

在您的代码中,data不是字符串。它是一个数组。它不需要解析(JavaScript编译器除外)。只需丢弃$.parseJSON并使用数据即可。

data = [{'title' : 'location 1','lat' : '29.769730','lng' : '-95.257181','desc' : 'Apartments',},{'title' : 'location 2','lat' : '29.852264','lng' : '-95.469999','desc' : 'location description',},];

data.forEach(o => console.log(o.title));


  

它是从mvc5控制器方法作为字符串返回的

如果您的代码不能准确反映您拥有的数据,并且您确实有一个字符串,则需要进行解析。

您提供的代码不是有效的JSON,

  • 要求字符串用"而不是'
  • 不允许在数组的最后一项之后尾随,

您需要修复服务器端代码,以便它返回真实的JSON。

这可能涉及到替换一些试图通过将字符串混在一起来生成JSON的代码以及一些使用JSON感知库函数的代码(请参见this question)。

答案 1 :(得分:0)

您的JSON无效,请尝试以下操作:

var data = '[{"title" : "location 1","lat" : "29.769730","lng" : "-95.257181","desc" : "Apartments"},{"title" : "location 2","lat" : "29.852264","lng" : "-95.469999","desc" : "location description"}]';

var test = $.parseJSON(data);

验证您的JSON here

[{"title" : "location 1","lat" : "29.769730","lng" : "-95.257181","desc" : "Apartments"},{"title" : "location 2","lat" : "29.852264","lng" : "-95.469999","desc" : "location description"}]