0

http://www.javarants.com/2008/04/13/using-google-app-engine-to-extend-yahoo-pipes/をインスピレーションとして使用しようとしていますが、出力に問題があります。

コンソールと App Engine の「django util simplejson」でテストすると明らかです。

/cygdrive/c/Program Files/Google/google_appengine/lib/django
$ python
Python 2.5.2 (r252:60911, Dec  2 2008, 09:26:14) 
[GCC 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from django.utils import simplejson as json
>>> json.dumps('/')
'"\\/"'
>>> json.dumps('http://stackoverflow.com')
'"http:\\/\\/stackoverflow.com"

私が読むことができる限り、これは問題のない動作です:

JSON では、バックスラッシュ、二重引用符、および ASCII 制御文字のみをエスケープする必要があります。スラッシュは、次の URL の例のようにエスケープできますが、必須ではありません。

しかし、yahoopipes に入力し直すと、出力が「エスケープ解除」されず、すべての URL と HTML が機能しません。

本当にやるべきか

self.response.out.write(json.dumps(obj).replace('\\/','/'))

?

====編集===

驚いたことに、simplejson サイトからダウンロードした最新の simplejson は「スラッシュ」処理を行っていないことがわかりました :( 本当の問題はアプリ エンジンの django.util.simplejson バージョンにありますか?

=== 再編集 ===

そして今、トラッカーに問題を作成しました: http://code.google.com/p/googleappengine/issues/detail?id=1128

4

1 に答える 1