解析JSON时出现问题

j7n*_*n7k 3 javascript json

我遇到了以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字符串的库?

And*_*y E 5

像其他人指出的那样,它是无效的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/