我遇到了以JSON格式使用第三方Web服务的问题.来自服务器的JSON响应有点像这样:
{
"ID":10079,
"DateTime":new Date(1288384200000),
"TimeZoneID":"W. Europe Standard Time",
"groupID":284,
"groupOrderID":10
}
Run Code Online (Sandbox Code Playgroud)
我使用JavaScript而没有额外的库来解析JSON.
//Parse JSON string to JS Object
var messageAsJSObj = JSON.parse(fullResultJSON);
Run Code Online (Sandbox Code Playgroud)
解析失败.JSON验证员告诉我,"新日期(1288384200000)"无效.
有没有可以帮助我解析JSON字符串的库?
像其他人指出的那样,它是无效的JSON.一种解决方案是使用eval()而不是,JSON.parse()但这会给您带来潜在的安全问题.
更好的方法可能是搜索并替换这些有问题的问题,将数据转换为有效的JSON:
fullResultJSON = fullResultJSON.replace(/new Date\((\d+)\)/g, '$1');
Run Code Online (Sandbox Code Playgroud)
您甚至可以更进一步,使用第二个参数将这些字段"恢复"为JavaScript Date对象JSON.parse():
var messageAsJSObj = JSON.parse(fullResultJSON, function (key, value) {
if (key == "DateTime")
return new Date(value);
return value;
});
Run Code Online (Sandbox Code Playgroud)
这是一个例子:http://jsfiddle.net/AndyE/vcXnE/