Jquery自动完成JSON字符串解析错误

Ida*_*ter 1 asp.net jquery jquery-ui jquery-ui-autocomplete

我想在我的Web应用程序中使用Jquery自动完成,但遇到问题.我正在ASP.NET和JQuery中开发我的应用程序.

以下是Autocopmlete'成功'功能的一部分:

success: function (data) {
     response($.map(data.d, function (item) {
         return {
              label:  item.key,
             value: item.value
            }
       }));
     },
Run Code Online (Sandbox Code Playgroud)

我的webservice返回以下JSON:

"[{"key":"Bread","value":"3"}]"
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我收到Javascript错误:

Uncaught TypeError: Cannot use 'in' operator to search for '42' in [{"key":"bread","value":"3"}] 
Run Code Online (Sandbox Code Playgroud)

从我可以看出,看起来返回的JSON的格式不是$ .map函数.此外,结果可能会返回几个项目,而不仅仅是一个项目,如上所示.

任何人都可以帮我解决这个问题.我使用JSONdataTypeGETtype在Ajax调用.

Ank*_*ain 7

我只是建议你,而不是使用任何其他方法,你可以使用:

success: function (data, status, xhr) {
    var jsonArray = JSON.parse(data);  // Normal way
}
Run Code Online (Sandbox Code Playgroud)

另一种方式

success: function (data, status, xhr) {
    var jsonArray = $.parseJSON(data); // using jQuery
}
Run Code Online (Sandbox Code Playgroud)

通过这种方式,它将转换为一个简单的JavaScript对象,您可以在UI/DOM上轻松操作它.