2017-04-06 6 views
1

私はdjangoテンプレートにオブジェクトのリストを提供しています。私は私が正しいJSONである私たちは、通常{"option": False, "name": "test string"}にこれを変換するために、pythonで、このためにjson.dumpsを使用{u'option': False, u'name': u'test string'}javascriptでjson.dumpsに相当するものを使用する方法はありますか?

ようu'文字を含むJSONフィールドで、テンプレート内のオブジェクトのフィールドの1つにアクセスしていた条件を持っています私は私のjavascriptでそのような文字列にアクセスする必要があるようにしたい。

javascriptでこれを行う簡単な方法はありますか?正規表現を使用して、u' and 'を取り除いて、"と置き換えないでください。

これは非常に基本的でしたが残念です。 JavaScriptについてよく知りません。

または、私のオブジェクトフィールドto_jsonをPythonから何らかの形でエンコードする方法はありますか?

var jsonstr = JSON.stringify(someVariable); 

有効なJSONはu'something'、唯一"something"のような構造が含まれていません:

答えて

2

JavaScriptでPythonのjson.dumps()に相当JSON.stringify()のようです。そのような文字列を実際に持っているのであれば、それはおそらくrepr()またはそれに類するものを介してPythonから来るでしょう。

Pythonオブジェクトをそれぞれの環境内からJavaScriptオブジェクトに変換しようとしている場合、Pythonではjson.dumps()を使用してJSONエンコード文字列に変換し、文字列をJavaScript環境に転送してからJSON.parse()を使用して変換しますそれらをオブジェクトに戻します。

(string、float、boolean、array、key:value構造体などの基本的な型を超えてJSONが理解できないことに注意してください)たとえば、Python datetimeオブジェクトを転送しようとすると、実際のJavaScript Dateオブジェクトではなく、文字列またはコレクションキー:値のペア)。

+0

ありがとうございました。しかし、私はちょうど私がdjangoから提供していたものを更新することに行きました。それはよりクリーンで簡単でした。 JSON.stringifyがJsonフィールドから 'u 'を削除していないためです。とにかくそれをパイソンで処理しなければなりませんでした。 –

+0

配列/リストでの警告は同等ではありません。私はこの不一致を、リスト上のpythonによるプレタイピングで見つけました。 (PythonはJavascriptではデフォルトでスペースを追加しています) – ThePhi

関連する問題