1

サーバー上で整数の配列が生成され、クライアントに送信される単純な Flask アプリを作成しようとしています。コンソールに整数の配列を表示したい。app.py のサンプル (動作) コードを次に示します。

from flask import Flask, render_template, request, url_for

import random, json

app = Flask(__name__)

@app.route('/',  methods=['GET'])
def form():
    json_helper = {}
    json_helper['randoms'] = [random.random() for _ in range(40)]
    json_object = json.dumps(json_helper)
    return render_template('sim0625.html', s_data=json_object)

if __name__ == '__main__':
  app.run(debug=True)

そして、ここに Javascript フロントエンドのスニペットがあります:

<script>

  var data_xyz = {{ s_data|tojson }};

  var JSONObject = JSON.parse({{data_xyz}});
  console.log(JSONObject.randoms);  

 </script>

残念ながら、私の Web ページではどの JavaScript も機能せず、表示されるエラー メッセージは「Uncaught SyntaxError: Unexpected token u」です。

誰かがこれを修正する方法を説明できますか? ありがとう。私の推測では、JSON オブジェクトは文字列になっています。

注: フロントエンドのコードは、SO の質問: Extracting data from json object in jQuery or JS から変更されました。

4

1 に答える 1

3

変数を介して JSON をテンプレートに送信していますs_data

テンプレートでは、その変数を というJavaScript変数にレンダリングしていますdata_xyz。次の行では、JavaScript 変数ではなく、Jinja 変数を参照しようとしています。

var JSONObject = JSON.parse({{data_xyz}});

それを次のように変更します。

var JSONObject = JSON.parse(data_xyz);
于 2015-06-29T19:59:53.610 に答える