代码之家  ›  专栏  ›  技术社区  ›  Peder Rice

jQuery如何反序列化JSON?

  •  5
  • Peder Rice  · 技术社区  · 16 年前

    我正在使用jQuery.ajax(…)从ASP.NETMVC服务检索JSON数据。当服务器遇到异常时,我将400错误请求状态发送回客户端,并将异常作为JsonResult发送:

    Response.StatusCode = 400;
    return Json(new { ex.Message, ex.StackTrace });
    

    下面是我的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);
        }
    });
    

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

    json_parse 简单地反序列化我的异常,我想简单地利用jQuery使用的同一个JSON解析器,尽管我找不到关于它的信息。

    3 回复  |  直到 16 年前
        1
  •  6
  •   David Hedlund    16 年前

    jQuery曾经使用 eval

        2
  •  2
  •   John Boker    16 年前

    我认为在javascript中,如果你有一个json字符串,你可以使用eval来获取一个对象,即:

    var myObject = eval('(' + myJSONtext + ')');
    

    有更多关于这方面的信息 http://www.json.org/js.html

        3
  •  0
  •   xavier    16 年前

    json = eval( o.responseText
        .replace( /\/\*(.*)\*\/g, ' ' )
        .replace( /([^\:])\/\/[^\n]*\n/g, '$1' )
        .replace( /^\s|\s+|\s$/g, '' ) )
    
    推荐文章