【问题标题】:parse JSON in jquery Autocomplete在 jquery 自动完成中解析 JSON
【发布时间】:2013-06-27 11:49:50
【问题描述】:

在自动完成框中的键输入中,我从 MVC 控制器以 JSON 格式返回键、值对。

public ActionResult UserNameAutoComplete(string term)
{
    DBEntities db = new DBEntities();

    ...codes to get data from database 

    jsonString += jSearializer.Serialize(userList);
    return Json(jsonString, JsonRequestBehavior.AllowGet);
}

返回的 Json 字符串为 [{"UserId":"1","UserName":"admin"},{"UserId":"3","UserName":"newtonsheikh"}]

在视图中我得到了这个

jquery 是

$("#Username").autocomplete({
    source: '@Url.Action("UserNameAutoComplete")'
});

我的问题是如何解析这个返回的 json?预期的输出是

【问题讨论】:

  • System.Web.Script.Serialization.JavaScriptSerializer jSearializer = new System.Web.Script.Serialization.JavaScriptSerializer();此类的对象

标签: jquery json asp.net-mvc-3 asp.net-mvc-4 jquery-autocomplete


【解决方案1】:

解决了这个问题。我不得不更改我的 jquery 代码。返回json字符串的代码无需更改。

$("#Username").autocomplete({
        select: function (e, ui) {
            $("#Username").val(ui.item.label);
            return false;
        },

        source: function (request, response) {
            $.ajax({
                url: '@Url.Action("UserNameAutoComplete")',
                data: request,
                success: function (data) {
                    var ParsedObject = $.parseJSON(data);
                    response($.map(ParsedObject, function (item) {
                        return {
                            label: item.UserName,
                            value: item.UserId
                        };

                    }))
                }
            });
        }
    });

【讨论】:

    【解决方案2】:

    您尝试将数据集序列化两次。 你需要使用

    return Json(jsonString, JsonRequestBehavior.AllowGet);
    

    没有(!)jSerializer。

    或者如果您想使用序列化程序执行此操作,请尝试仅返回序列化数据集的内容

    jsonString += jSearializer.Serialize(userList);
    return Content(jsonString);
    

    【讨论】:

      猜你喜欢
      • 2011-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-29
      • 2016-05-29
      相关资源
      最近更新 更多