2010-01-29 64 views
1

我想從蟒蛇傳遞一些數據的JavaScript。我在python一側使用Django,在javascript一側使用jQuery。JSON蟒蛇的JavaScript

我在Python端序列化的對象是一個字典。

除了像列表和變量這樣的簡單對象外,該字典還包含SomeClass的實例。序列化的情況下,我extendeded 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'這些實例可以被嵌套在不同deph字典。

現在我想在javascript端重新創建這些實例。

我基本上想哈瓦一個JSON解碼器,將所有詞典轉換與magicParameter == 'SomeClass'到自定義JavaScript使用一個簡單的對象工廠對象:

SomeClass = function(rawSomeClass) { 

    jQuery.extend(this, rawSomeClass) // jQuery extend merges the newly-created object and the rawSomeClass object 

} 

,然後我可以添加方法類似這樣的重建原始objects:

SomeClass.prototype.get = function(arguments) { 
    // function body 

} 

如何編寫解碼器,它將掃描JSON對象並執行轉換?

回答

0
  1. 評估和演示JSON字符串爲對象
  2. 運行通過對象的值,並通過轉換器
  3. 與magicParameter鑑定值=「SomeClass的」
  4. 運行這些值分配結果返回到該值最初在結果對象中
+0

如何運行這些值?可以有嵌套字典和列表。 – 2010-01-29 11:22:21

+0

'for(變量在對象中)'是一個簡單的答案。或者您可以閱讀https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Statements/For...in以獲得更多詳細信息 – NilColor 2010-01-29 14:36:21

+0

這是一篇關於json在客戶端解析的非常好的文章 - http:// code .flickr.com /博客/ 2009/03/18 /建築 - 快 - 客戶端的搜索/ – viksit 2010-02-01 01:47:57