在KnockoutJS中有一种方法可以将可观察数组的嵌套结构序列化为JSON吗? 我正在使用JSON.stringify,但由于它不像someObservableArray()那样访问数组,因此它无法序列化嵌套数组:
Ex:我有一个可观察的数组,其中每个项目都包含一个可观察的数组作为属性。
目前我在调用JSON.stringify之前手动将其转换为标准JS对象,但是还有另一个敲除函数可以让我直接将其转换为JSON
答案 0 :(得分:4)
您可以使用可以将嵌套的可观察结构序列化为JSON的ko.toJSON
function:
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。