1

在 KnockoutJS 中,有没有办法将可观察数组的嵌套结构序列化为 JSON?我正在使用 JSON.stringify,但由于它不以 someObservableArray() 的形式访问数组,因此无法序列化嵌套数组:

例如:我有一个可观察数组,其中每个项目都包含一个可观察数组作为属性。

目前我在调用 JSON.stringify 之前手动将其转换为标准 JS 对象,但是是否有另一个敲除函数可以让我直接将其转换为 JSON

4

1 回答 1

4

您可以使用可以将嵌套的可观察结构序列化为 JSON的ko.toJSON函数:

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

于 2013-04-17T15:12:27.930 回答