我想将一些数据从 python 传输到 javascript。我在 python 端使用 Django,在 javascript 端使用 jQuery。
我在 python 端序列化的对象是一个字典。
除了像列表和变量这样的简单对象之外,这个字典还包含 SomeClass 的实例。为了序列化这些实例,我像这样扩展了 simplejson.JSONEncode:
class HandleSomeClass(simplejson.JSONEncoder):
""" simplejson.JSONEncoder extension: handle SomeClass """
def default(self, obj):
if isinstance(obj, SomeClass):
readyToSerialize = do_something(obj)
readyToSerialize.magicParameter = 'SomeClass'
return readyToSerialize
return simplejson.JSONEncoder.default(self, obj)
这样,SomeClass 实例在 JSON 中显示为具有 magicParameter == 'SomeClass'
的字典,这些实例可以嵌套在不同的深度。
现在我想在 javascript 端重新创建这些实例。
我基本上想要一个 JSON 解码器,它会使用一个简单的对象工厂将所有带有 magicParameter == 'SomeClass'
的字典转换为自定义 javascript 对象:
SomeClass = function( rawSomeClass ) {
jQuery.extend( this, rawSomeClass ) // jQuery extend merges the newly-created object and the rawSomeClass object
}
然后我可以添加这样的方法来重新创建原始对象:
SomeClass.prototype.get = function( arguments ) {
// function body
}
如何编写解码器,扫描 JSON 对象并执行转换?
最佳答案
- 将 JSON 字符串转化为一个对象
- 遍历对象的值并使用 magicParameter='SomeClass' 识别值
- 通过转换器运行这些值
- 将结果分配回值最初在结果对象中的位置
关于javascript - JSON python 到 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2161457/