javascript - 如何在 localStorage API HTML5 中保存函数

标签 javascript json html

<分区>

我试图在 localStorage 中保存一个数组,但它包含数组对象中的函数(称为 promise),但是当我使用 JSON 将数组转换为字符串时出现问题。 stringify,显然所有函数都被删除了,当我将字符串解析为 JSON Object 时,它没有方法。

/* Example code */

var storage = {
	getListUsers: function(){
		return {
			name: 'name',
			age: 'age'
		}
	},
	active: true,
	data: []
}

var convert = JSON.stringify(storage);
localStorage.setItem('data', convert);

最好的问候。

最佳答案

少量观察:

  • JSON 中不存在函数。查看官方文档json.org .
  • 值可以是双引号中的字符串,或数字,或truefalsenull,或对象数组,但不是方法。<
  • 为什么方法在 JSON 对象中?方法基本上用于操作数据。您也可以使用 JSON 对象之外的数据。

您可以使用JSON.stringify替换函数将函数转换为字符串,同时转换为JSON字符串。

演示

var storage = {
	getListUsers: function() {
		return {
			name: 'name',
			age: 'age'
		}
	},
	active: true,
	data: []
}

var json = JSON.stringify(storage, function(key, value) {
  if (typeof value === 'function') {
    return value.toString();
  } else {
    return value;
  }
});

console.log(json);

关于javascript - 如何在 localStorage API HTML5 中保存函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45626529/

相关文章:

javascript - 无法覆盖 CSS 规则

javascript - 使用 Javascript 服务器端编码从经典 ASP 返回 JSONP

c# - Json.NET - CustomCreationConverter 中单个属性的默认反序列化行为

javascript - 如何从 OSM 中删除标记

javascript - 将数据从数据库推送到数组后调用另一个 JavaScript 函数

javascript - 将文本粘贴到文本字段时,onChange 不会在 React 15.1.0 + IE11 中触发

javascript - 对象数组,在 JavaScript 中具有单独的属性

python - 使用 json lib 通过 Python 从嵌套的 JSON 中获取元素

PHP 从 MySQL 检索输出

javascript - 如何将 javascript 函数绑定(bind)到 DOM 上动态添加的元素?