0

私はPythonでDjangoを使用してGAEアプリケーションを使用しています。私は、jsonのget/getJSON APIを使用してPython APIからjsonをフェッチしようとしていますが、渡された文字列をjsonとして読み取るわけではありません。私はここに何かを逃していますかgetJSONがjsonオブジェクトを取得していません

Djangoテンプレート

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" > </script> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
    $.get('/test/api?request=getallwords', function(json) { 
     $('body').append(json); 
     var j = JSON.stringify(json) 
     $.each(json.details,function(i){ 
      $('#list').append($('<li>' + this.word + '</li>')); 
     }); 
     alert(j); 
    }); 
    },'json'); 
</script> 
</head> 
<body> 
<ol id="list"> 
</ol> 

そしてここでは、PythonのAPIです。

words = Word.all().fetch(20) 
for w in words: 
    d = {"word":w.name.encode('utf-8'),"lists":[]} 
    for l in w.word_lists: 
     d["lists"].append({"list":l.word_list.name.encode('utf-8')}) 
success["details"].append(d) 
self.response.headers['Content-Type'] = 'application/javascript' 
self.response.out.write(success) 

とJSONの例

{ '応答': '成功'、 '詳細':[{ '言葉': 'mcity'、 'リスト':[{ 'リスト': {'単語': 'mcity_1'、 'リスト':[]}、{'単語': 'mcity_2'、 'リスト':[]} {{'list': 'infy'}}、{'word': 'hyddc'、 'lists':{{'list': 'infy'} {'リスト': '単語'}}}、{'単語': 'アセンブル'、 'リスト':[{'リスト': '}'、 ' {{'list': 'dasd'}} {{'list': 'mas'}}}、{'word': 'assas'、 'lists' ]}]}

答えて

0
$(document).ready(function(){ 
    $.get('/test/api?request=getallwords', function(json) { 
     $('body').append(json); 
     var j = JSON.stringify(json) 
     $.each(json.details,function(i){ 
      $('#list').append($('<li>' + this.word + '</li>')); 
     }); 
     alert(j); 
    }); // error, you close the $('document').ready() here 
    },'json'); 

前に閉じてしまう次のようにする必要がありますが、決算が混ざっ括弧持っていると思います:

$(document).ready(function(){ 
    $.get('/test/api?request=getallwords', function(json) { 
     $('body').append(json); 
     var j = JSON.stringify(json) 
     $.each(json.details,function(i){ 
      $('#list').append($('<li>' + this.word + '</li>')); 
     }); 
     alert(j); 
    },'json'); 
}); 
+0

これは(私が誤って 'self.response.headers [ 'Content-Typeの'] =「アプリケーション/ javascript''を削除し、また' self.response.out.writeを変更しました。実際に問題の一つでした成功) 'から' self.response.out.write(js on.dumps(成功)) 'と表示されました。助けてくれてありがとう! – adifire

0

jQuery get()ではなくgetJSON()のように見えますので、dataTypeをリクエストオブジェクトのJSONとして指定する必要があります。

あなたは以下の「JSON」はこれをやっている考えているならば、私は(GETが$(document).ready()

}); 
    },'json');