2013-04-17 41 views
1

KnockoutJS有沒有辦法將可觀察數組的嵌套結構序列化爲JSON? 我透過JSON.stringify,但由於它不訪問數組作爲someObservableArray(),它將無法序列化嵌套的數組:將嵌套的可觀察數組序列化爲JSON

例:我有可觀察到的陣列,其中每個條目包含可觀察到的數組作爲屬性。

目前,我手動將其轉換爲標準的JS對象調用JSON.stringify之前,但有另一種基因敲除的功能,使我將其轉換爲JSON直接

+0

[JSON.stringify具有Knockout JS變量的對象]的可能重複(https://stackoverflow.com/questions/15087710/json-stringify-an-object-with-knockout-js-variables) – Nisarg

回答

4

可以使用ko.toJSON function可序列化嵌套JSON的可觀察結構:

var vm = { 
    someObservableArray: ko.observableArray(
    [{ 
     prop: ko.observable('val1'), 
     childArray: ko.observableArray([{ 
      prop2: ko.observable('vla2') 
     }, { 
      prop2: ko.observable('val3') 
     }]) 
    }, { 
     prop: ko.observable('val4'), 
     childArray: ko.observableArray([{ 
      prop2: ko.observable('val5') 
     }, { 
      prop2: ko.observable('val6') 
     }]) 
    }]) 
} 
console.log(ko.toJSON(vm)); 
// output: {"someObservableArray":[{"prop":"val1","childArray":[{"prop2":"vla2"}, 
//   {"prop2":"val3"}]},{"prop":"val4","childArray":[{"prop2":"val5"}, 
//   {"prop2":"val6"}]}]} 

演示JSFiddle

相關問題