1

WebアプリケーションでJqueryオートコンプリートを使用したいのですが、問題が発生します。ASP.NETとJQueryでアプリケーションを開発しています。

Autocopmleteの「succes」関数の一部は次のとおりです。

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

私のWebサービスは次のJSONを返します。

"[{"key":"Bread","value":"3"}]"

実行すると、Javascriptエラーが発生します。

Uncaught TypeError: Cannot use 'in' operator to search for '42' in [{"key":"bread","value":"3"}] 

返されたJSONは、私が知る限り、$。map関数に対して正しい形式ではないようです。また、結果は、上記の1つだけでなく、複数のアイテムを返す可能性があります。

誰かが私がこの問題を解決するのを手伝ってもらえますか?私はAjax呼び出しでととして使用JSONしています。dataTypeGETtype

4

2 に答える 2

7

使用できる他の方法を使用する代わりに、単に提案します。

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

他の方法

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

このようにして、UI/DOMで簡単に操作できる単純なJavaScriptオブジェクトに変換されます。

于 2013-01-16T18:55:04.890 に答える
0

その通りです。JSONは単一のオブジェクトを含む配列です。あなたはそのオブジェクトだけを期待しています。

次のようにコードを変更してみてください。

success: function (data) {
  data = data[0]; 
于 2013-01-16T16:54:52.573 に答える