1

Python でリストを作成し、それを json に変換しました。しかし、これを JavaScript で反復処理して正しい項目を表示するのに問題があります。

何かアドバイス?

パイソン:

def friends2(request):
    fb_feed = [#data in here]
    b = json.dumps(fb_feed)
    print b
    return HttpResponse(b)

I のときにコンソールに出力されるものprint b:

[
    [1236870349, "Your friend", "Bhangra indian Jingle Bells balle balle Merry Christmas", "2lPdXV1KO4s", "Your friend watched \"Bhangra indian Jingle Bells balle balle Merry Christmas\""], 
    [2303218, "Your friend", "Look at this Instagram (Nickelback Parody)", "ttp://www.c", "Your friend watched \"Look at this Instagram (Nickelback Parody)\""]

]

JavaScript

    <script>
$(document).ready(function (){

            event.preventDefault();
            $.ajax({
                 type:"GET",
                 url:"/friends2/",
                 data: {},

                 success: function(b){
                    b = jQuery.parseJSON(b);
                                            console.log(b) //returns null
                    for (var i = 0; i < b.length; i++) { 
                            var friend = "";
                            friend = b[i][3]
                            friend += "\n";
                            $('.social').append(friend);
                        }                

                    }
            });
});
</script>

html

<div class = 'social'></div>
4

3 に答える 3

1

スクリプトdataType:jsonに追加$.ajax

 $.ajax({
         type:"GET",
         url:"/friends2/",  #the url /friends2/ points to friends2 in python
         data: {},
         dataType: json, //ADD THIS
         ...
         ...

追加したくない場合は、json文字列を解析するためにdataType使用できます。jQuery.parseJSON(b)

success: function(b) {
    var data = jQuery.parseJSON(b); //parse JSON string here
    ...
    ...

}
于 2012-12-06T15:27:56.850 に答える
0

あなたのコードに間違いがあると思います。jsonは正しいはずです。配列の長さが2であるため、b[3]は未定義です。b[i][3]のことですか?

私が知る限り、他のすべては機能するはずです。

于 2012-12-06T15:38:33.823 に答える
0

ビューが JSON を返す場合は、それに応じてコンテンツ タイプ (MIME タイプ) を設定する必要があります。

return HttpResponse(b, content_type='application/json')

jQueryは、MIME タイプが正しく設定されている場合$.ajaxに自動的に適用されるほどスマートです。dataType: json

データ・タイプ

デフォルト: Intelligent Guess (xml、json、script、または html)

サーバーから返されることを期待しているデータのタイプ。何も指定されていない場合、jQuery は応答の MIME タイプに基づいて推測しようとします。

于 2012-12-07T01:59:11.977 に答える