我有一个我正在创建的神经网络库,其中包含存储在数组中的嵌套对象。我需要能够将这些对象的状态保存到本地存储。我试图使用JSON.stringify将最高级别的网络对象转换为我可以保存的东西,但是当我JSON.parse()
它返回时,它不包含方法。
提前感谢您的帮助。
答案 0 :(得分:0)
他们中的大多数人不会建议在JSON对象中持久保存函数(行为),这只是为了携带数据。 如果你想用函数序列化对象,你需要覆盖它们,下面的代码可以帮助你。
这将有助于您序列化功能。
var json = function(obj){ return JSON.stringify(obj, function(key, value) {
if (typeof value === 'function') {
return value.toString();
} else {
return value;
}
})};
我已经创建了一个用于测试的对象rama, json(rama)的输出将是
"{\"myName\":\"Ramasamy Kasiviswanathan\",\"myfunction\":\"function(input){\\nconsole.log('input', input);\\n}\"}"
存储在localStorage中,
localStorage.setItem('ramaLocal',json(rama));
从LocalStorage中检索值
ramadeserialize = eval("JSON.parse(localStorage.getItem('ramaLocal'))");
O / P将是:
Object { myName: "Ramasamy Kasiviswanathan", myfunction: "function(input){\nconsole.log('input', input);\n}" }