2011-01-18 5 views
0
$.post("http://10.0.1.101:9000/search/", {q: ""+inputString+""}, function(data){ 
    if(data.length >0) { 
    alert(data); 
    $('#suggestions').show(); 
    $('#autoSuggestionsList').html(data); 

    } 
    }); 

alert(data) gives me : 
    {"result": ["taxo", "tere", "tuy"], "success": "True"} 

しかし、私は警告が私に["taxo", "tere", "tuy"]を与えたいと思っています。 alert(data['result'])は私に未定義の値を与えます。javascriptで辞書を解析する方法

+0

あなたがリストを持っているので、あなたが 'for' /' while'ループと 'IF-condition'を使用して値を見つけるまで、リストを反復。 – Anders

答えて

1

$.post("http://10.0.1.101:9000/search/", {q: ""+inputString+""}, function(data){ 
    if(data.length > 0) { 
    alert(data); 
    $('#suggestions').show(); 
    $('#autoSuggestionsList').html(data); 
    } 
},'json'); 

お知らせ「JSON」を$ .post呼び出しの一部。jQueryに結果にjsonがあることを伝え、それをあなたが望むようにアクセスできるjavascriptオブジェクトに解析します。

Look here for the full documentation

0

あなたのデータは文字列として返されると思います。

$.ajax({dataType: json, type: post, ...}); 

を参照してください:あなたができるようhttp://api.jquery.com/jQuery.ajax/

0

data.resultは、あなたのリストが表示されます:

$ .postを使用する場合({})、あなたはJSON形式のデータを期待しているのjQueryを伝える必要があります
alert(data.result.join(',')); 

また、サーバに適切なコンテンツタイプを指定していることを確認してください。application/jsonまたはjqueryは結果をJSONオブジェクトに解析しません。あなたは、サーバーを制御することはできません場合は、クライアント上でdataTypeパラメータを指定することができます。

$.ajax({ 
    url: 'http://10.0.1.101:9000/search/', 
    data: { q: inputString }, 
    dataType: 'json', 
    success: function(data) { 
     if(data.result > 0) { 
      $('#suggestions').show(); 
      $('#autoSuggestionsList').html(data.result.join(',')); 
     } 
    } 
}); 
あなたはこのように見えるようにコードを変更する必要が
関連する問題