3

django で simplejson 関数を使用すると、すべての文字列が一重引用符で囲まれ、json オブジェクト文字列全体が二重引用符で囲まれていることに気付きました。この文字列を取得して JSON.parse に渡すと、オブジェクト全体を一重引用符で囲み、文字列を二重引用符で囲むため、エラーが発生します。JavaScript の置換でそれらを切り替えることもできますが、アポストロフィなどのケースを考慮する必要がありますが、もっと良い方法があると確信しています。django の simplejson でオブジェクト文字列を JSON.parse の形式で出力する方法はありますか?

より詳しい情報:

ジャンゴ ビュー:

def view(request):
    list = [{"a":"apple",},]
    return HttpResponse(simplejson.dumps(str(list)), mimetype="application/json")

JavaScript文字列がどうなるか

"[{'a': 'りんご'}]"

4

1 に答える 1

5

更新str()して、単にリスト の周りを削除しますsimplejson.dumps(list)str()リストを文字列に変換すると"[{'a': 'apple'}]"、クライアント側になります。

simplejson が一重引用符で文字列を囲むデモに質問を更新できますか?

django.utils.simplejson、通常、JSON 仕様に準拠し、一重引用符を使用してラップしません。つまり

>>> from django.utils.simplejson import dumps
>>> dumps("Hello")
'"Hello"' # single quotes here
>>> repr(dumps("Hello"))
'\'"Hello"\'' # or here

これらは Python の表記法であり、JSON.parse で直接使用したくはありません (ただし、最初のものは問題ありません)。

于 2012-04-12T02:06:58.723 に答える