Я хочу перенести некоторые данные из python в javascript . Я использую Django на стороне Python и JQuery на стороне Javascript.
Объект, который я сериализую на стороне 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 и выполнять преобразование?