2011-06-22 15 views
2

GAE上django.utils.simplejsonのバージョンでは、「\ n」は、私は他に私のクライアントのどこかにjson.loads(js)しようとすると、問題を引き起こしているjs = json.dumps(my_dict_w_strings_w_newline_and_slash)をやって「/」文字をエスケープ例えばですが、ありません。Google App Engine Python simplejsonがエスケープしていますか?

ソリューションを整理する方法上の任意の提案?文字列はbase64でエンコードされたデータで、これによって壊れてしまいます。

答えて

0

私の同僚が提案しています:

if json.encoder.ESCAPE_DCT.get('/') != '/': 
    json.encoder.ESCAPE_DCT['/'] = '/' 

NIC取り組んでいますely。

3

私は '\ n' のSDK(0.96および1.2)に同梱のsimplejsonバージョンと両方の脱出を試みた:

>>> simplejson.dumps({'foo': '\n'}) 
'{"foo": "\\n"}' 

そしてhttp://shell.appspot.com/上を:

Google App Engine/1.5.1 
Python 2.5.2 (r252:60911, Mar 17 2011, 15:16:30) 
[GCC 4.3.1] 

>>> from django.utils import simplejson 
>>> simplejson.dumps({'foo': '\n'}) 
'{"foo": "\\n"}' 
>>> simplejson.dumps('foo/bar') 
'"foo\\/bar"' 
+0

GAE上のうち実際のバージョンは、そうされていません。そして、 "/"は実際に私にとって大きな問題です。 –

+0

奇妙な。私はhttp://shell.appspot.com/で試してみて、それもエスケープします。 – moraes

+0

Hmm。今私は '\\ /'を '\ /'または '/'だけにしたい時に何かをエスケープしていた 'self.response.out.write'と考えています。 –