如何在jQuery中解析这个无效的JSON字符串?
我希望访问此数据属性中的各种数据位:
当然,data属性很容易在jQuery中实现。 但该字符串似乎是一种非标准或无效的JSONforms。 我已经尝试过JSON.parse()以及分割数组的基本JS方法。 从各方面来看,它似乎只是一个无效序列化的字符串。
我需要重新格式化数据字符串吗? (它不是来自我,它被其他惯例使用,我宁愿不打破,所以…)
通常我会说这很危险(事实上我现在会说),但试试:
var decoded; eval("decoded = " + $('div.location').attr('data'));
它是无效的JSON,因为没有引用标签。
您收到解析错误的原因是属性名称未正确引用。 这有效:
var obj = eval("(" + "{id: 4, point: {lng: -71.413364, lat: 41.673681}, category: 'Restaurant'}" + ")");
需要使用enclosing ()
来避免将{}
作为块语句进行eval处理。
JSON格式错误,无法进行解析。 如果你像这样重新格式化它是有效的 :
var obj = jQuery.parseJSON('{"id": 4, "point": {"lng": -71.413364, "lat": 41.673681}, "category": "Restaurant"}'); $("#blah").text(obj.point.lng);