Serialize nested observable arrays to JSON

最后都变了- 提交于 2020-01-05 07:57:36

问题


In KnockoutJS is there a way to serialize nested structures of observable arrays to JSON? I am using JSON.stringify, but since it doesn't access the arrays as someObservableArray(), it will not be able to serialize the nested arrays:

Ex: I have an observable array where each item contains an observable array as a property .

Currently I am manually converting it to a standard JS object before calling JSON.stringify, but is there another knockout function that will enable me to convert it to JSON directly


回答1:


You can use the ko.toJSON function which can serialize nested observable structures to 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"}]}]}

Demo JSFiddle.



来源:https://stackoverflow.com/questions/16063425/serialize-nested-observable-arrays-to-json

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!