在 KnockoutJS 中,有没有办法将可观察数组的嵌套结构序列化为 JSON?我正在使用 JSON.stringify,但由于它不以 someObservableArray() 的形式访问数组,因此无法序列化嵌套数组:
例如:我有一个可观察数组,其中每个项目都包含一个可观察数组作为属性。
目前我在调用 JSON.stringify 之前手动将其转换为标准 JS 对象,但是是否有另一个敲除函数可以让我直接将其转换为 JSON
在 KnockoutJS 中,有没有办法将可观察数组的嵌套结构序列化为 JSON?我正在使用 JSON.stringify,但由于它不以 someObservableArray() 的形式访问数组,因此无法序列化嵌套数组:
例如:我有一个可观察数组,其中每个项目都包含一个可观察数组作为属性。
目前我在调用 JSON.stringify 之前手动将其转换为标准 JS 对象,但是是否有另一个敲除函数可以让我直接将其转换为 JSON
您可以使用可以将嵌套的可观察结构序列化为 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。