我试图读取此字符串中的属性值,当我尝试对其进行解析时,得到无效字符。你能告诉我这里怎么了
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运行时错误:无效字符
答案 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"}]