1
需要node.js中塔和燒杯:JSON編碼會話
讀塔會話數據(只是讀,不寫)當我解碼的base64,我離開了我與包含序列化的Python對象的字符串這是一個痛苦的解析node.js
我怎樣才能讓燒杯序列化爲JSON呢?因爲node.js處理起來要容易得多。
需要node.js中塔和燒杯:JSON編碼會話
讀塔會話數據(只是讀,不寫)當我解碼的base64,我離開了我與包含序列化的Python對象的字符串這是一個痛苦的解析node.js
我怎樣才能讓燒杯序列化爲JSON呢?因爲node.js處理起來要容易得多。
我不得不看裏面的燒杯,找到你所說的「Python序列化字符串」是python泡菜。
我不認爲它會超過幾行來改變它讓它使用JSON來存儲字典。
這裏是針對https://bitbucket.org/bbangert/beaker/src/257f147861c8補丁:
diff -r 257f147861c8 beaker/session.py
--- a/beaker/session.py Mon Apr 18 11:38:53 2011 -0400
+++ b/beaker/session.py Sat Apr 30 14:19:12 2011 -0400
@@ -489,10 +489,10 @@
nonce = b64encode(os.urandom(40))[:8]
encrypt_key = crypto.generateCryptoKeys(self.encrypt_key,
self.validate_key + nonce, 1)
- data = util.pickle.dumps(self.copy(), 2)
+ data = util.json.dumps(self.copy())
return nonce + b64encode(crypto.aesEncrypt(data, encrypt_key))
else:
- data = util.pickle.dumps(self.copy(), 2)
+ data = util.json.dumps(self.copy())
return b64encode(data)
def _decrypt_data(self):
@@ -504,10 +504,10 @@
self.validate_key + nonce, 1)
payload = b64decode(self.cookie[self.key].value[8:])
data = crypto.aesDecrypt(payload, encrypt_key)
- return util.pickle.loads(data)
+ return util.json.loads(data)
else:
data = b64decode(self.cookie[self.key].value)
- return util.pickle.loads(data)
+ return util.json.loads(data)
def save(self, accessed_only=False):
"""Saves the data for this session to persistent storage"""
diff -r 257f147861c8 beaker/util.py
--- a/beaker/util.py Mon Apr 18 11:38:53 2011 -0400
+++ b/beaker/util.py Sat Apr 30 14:19:12 2011 -0400
@@ -24,6 +24,11 @@
import pickle
else:
import cPickle as pickle
+
+try:
+ import json
+except ImportError:
+ import simplejson as json
from beaker.converters import asbool
from beaker import exceptions
+1進入源代碼,解決問題,推動一個補丁。 – Raynos 2011-04-30 18:37:24
正是我所需要的。 – mikeycgto 2011-04-30 20:14:03