jQuery如何反序列化JSON?

Ped*_*ice 5 javascript jquery serialization json

我正在使用jQuery.ajax(...)从ASP.NET MVC服务中检索JSON数据.当服务器遇到异常时,我将400 Bad Request状态发送回客户端并将我的异常作为JsonResult发送:

Response.StatusCode = 400;
return Json(new { ex.Message, ex.StackTrace });
Run Code Online (Sandbox Code Playgroud)

这是我的jQuery代码:

$.ajax(
{
    type: "POST",
    url: deleteUrl,
    dataType: "json",
    data:
    {
        dataItems: dataItems,
        toJSON: true
    },
    success: function(msg)
    {
        alert(msg[i].dataItem);
    },
    error: function(request, status, error)
    {
        alert(request.responseText);
    }
});
Run Code Online (Sandbox Code Playgroud)

我的ASP.NET代码将我发送到我的JavaScript代码的错误部分,错误块只允许我读取request.responseText,而不是使用从服务器返回的对象.

现在,我不想在json_parse之类的内容中添加另一个JavaScript 包,而只是简单地反序列化我的Exception,我想简单地利用jQuery使用的相同JSON解析器,尽管我找不到容易找到的信息.

有人能指出我正确的方向吗?

Dav*_*und 6

jQuery曾经使用过eval,如果我没弄错的话.从1.4开始,它会利用原生JSON解串器(如果有的话)(例如,Firefox中有一个)

  • @Peder:是的,`jQuery.httpData(request,"json")`将返回你解析的JSON/JavaScript对象. (5认同)