我试图使用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