0

Djangoフレームワークを使用してWebサイトを構築しています。

Pythonファイル(views.py)で、jsonデータに変換された配列をJavascript関数に送信します

Python:

json_data=[1,2,3]
return HttpResponse(json.dumps(json_data), mimetype='application/json')

次に、Javascriptでjsonデータをhtmlで表示します。

JavaScript:

function get_variable(){ 

  $.get("/xhr_test/json/", function(json_data) {
    $('.square').append('<p> ' + json_data  + ' </p>');});
};

これまでのところすべてが機能します。ただし、文字列であると思われる「json_data」を配列に変換したいと思います。

私はこれをやってみました:

function get_variable(){ 

  $.get("/xhr_test/json/", function(json_data) {
    var array = json_data.split(',');
    $('.square').append('<p> ' + array[0]+ ' </p>');});
};

残念ながら、これは機能しません。

「json_data」変数をJavaScriptの配列に変換するために何ができるか説明してもらえますか?

どうもありがとう。

4

4 に答える 4

1

「これは機能しません」それは曖昧すぎます...とにかく、私があなたの問題を理解したなら、あなたはJavaScript配列ではなく文字列を扱っています...あなたはajax呼び出しから返されたデータを評価する必要があります:

var theJavaScriptArray = eval('(' + json_data + ')');

以上... jQuery.ajaxを使用し、jsonをdataTypeとして指定します:jquery doc

于 2013-02-08T14:27:51.193 に答える
1

JSON形式でデータを送信する場合、それは文字列(メインデータ)ですが、元のタイプ(つまり、配列)でデータを簡単に復元できるように形式化された文字列です。Javascriptとjqueryには、それを行うための異なる方法があります。jQueryを使用すると、getJSONがおそらく最も直接的です。

http://api.jquery.com/jQuery.getJSON/

ブラウザのjavascriptコンソールを使用して、JS変数がどのように表示されるかを正確に確認できます。

于 2013-02-08T14:33:10.307 に答える
1

結局、Zahのおかげで、「javascriptコンソール」が存在することを知りませんでした。

エラーは、「json_data」変数が文字列ではなかったことであることがわかりました。

だからこれは私のために働いた解決策です:

function get_variable(){ 
  $.get("/xhr_test/json/", function(json_data) {
    var b=json_data.toString().split(',');
    $('.square').append('<p> ' + b[0]  + ' </p>');
  });
};
于 2013-02-08T14:48:59.290 に答える
0

jQueryには、json文字列を自動的に解析するための省略形があります。jQuery.getJSON()

$.getJSON('/xhr_test/json/', function(data) {
     console.log(data);  // Here data is already a JavaScript object
});

これは基本的に次と同じです。

$.ajax({
    url: "/xhr_test/json/",
    dataType: "json",
    success: function(data) {
        console.log(data);  // Here data is already a JavaScript object
    }
});

これもほぼ同じです:

$.ajax({
    url: "/xhr_test/json/",
    success: function(data) {
        var json = $.parseJSON(data);  // Here data is a string
        console.log(data);  // And json is JavaScript object
    }
});
于 2013-02-08T14:51:04.447 に答える