Javascript 保存和恢复包含嵌套ObserverArray的ObserverArray
我有一个模型,我需要将其保存到JSON并根据需要重新加载。其思想是用户可以将模型保存到一个篮子或数据库(作为JSON字符串),然后重新加载它。创建并保存JSON非常简单,但重新加载似乎要困难得多。问题在于,我的模型包含一些类似于击出联系人示例的复杂对象: 我甚至可以生成JSON并通过web服务将其传递到.NET对象中 我已经看过了加载数据模型的淘汰文档: …我可以很容易地恢复我的“简单”观察值,但我不知道如何初始化复杂对象的数组,因为这些对象也包含观察值数组。有什么想法吗 我甚至尝试过使用映射插件,但生成的JSON不包含数组中的信息 这样做会创建JSON,我的所有数据都在其中:Javascript 保存和恢复包含嵌套ObserverArray的ObserverArray,javascript,json,knockout.js,Javascript,Json,Knockout.js,我有一个模型,我需要将其保存到JSON并根据需要重新加载。其思想是用户可以将模型保存到一个篮子或数据库(作为JSON字符串),然后重新加载它。创建并保存JSON非常简单,但重新加载似乎要困难得多。问题在于,我的模型包含一些类似于击出联系人示例的复杂对象: 我甚至可以生成JSON并通过web服务将其传递到.NET对象中 我已经看过了加载数据模型的淘汰文档: …我可以很容易地恢复我的“简单”观察值,但我不知道如何初始化复杂对象的数组,因为这些对象也包含观察值数组。有什么想法吗 我甚至尝试过使用映
var jsonData = JSON.stringify(ko.toJS(self.contacts), null, 2)
理想情况下,我只需要将其反转,或者至少一个接一个地创建所有对象
谢谢查看:)映射插件应该可以工作。我不确定我是否正确理解了你的情况,但请尝试这样做:
ViewModel = function() {
this.contacts = ko.observableArray();
}
var model = new ViewModel();
ko.applyBindings(model);
var json = '{"contacts":[{"name":"Tom","phones":["00000000","1111111111"]},{"name":"Bill","phones":["222222222","333333333"]},{"name":"Bert","phones":["444444444","55555555"]}]}';
ko.mapping.fromJSON(json, {}, model);
每个联系人中的“联系人”和“电话”的ObservalArray都是从json字符串中正确反序列化的
好的,看起来很有趣-我明天会试试,然后回来汇报。感谢您的快速回复:)