我在尝试使用 JSON 格式的第三方 Web 服务时遇到问题。来自服务器的 JSON 响应看起来像这样:
{
"ID":10079,
"DateTime":new Date(1288384200000),
"TimeZoneID":"W. Europe Standard Time",
"groupID":284,
"groupOrderID":10
}
我使用没有额外库的 JavaScript 来解析 JSON。
//Parse JSON string to JS Object
var messageAsJSObj = JSON.parse(fullResultJSON);
解析失败。 JSON 验证器告诉我,“new Date(1288384200000)”无效。
有没有可以帮我解析 JSON 字符串的库?
最佳答案
正如其他人所指出的,它是无效的 JSON。一种解决方案是使用 eval()
而不是 JSON.parse()
但这会给您带来潜在的安全问题。
更好的方法可能是搜索并替换这些有问题的问题,将数据转换为有效的 JSON:
fullResultJSON = fullResultJSON.replace(/new Date\((\d+)\)/g, '$1');
您甚至可以更进一步,使用 JSON.parse()
的第二个参数将这些字段“恢复”到 JavaScript Date 对象中:
var messageAsJSObj = JSON.parse(fullResultJSON, function (key, value) {
if (key == "DateTime")
return new Date(value);
return value;
});
关于javascript - 解析 JSON 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4245403/