首页 > 解决方案 > 字符串化一个字符串还是空?

问题描述

我将数据作为 JSON 对象存储在 中localStorage,因为有时它可以是一个数组,我可以在那里存储值。

我有一个键,其中的值可以是一个数组,也可以是 null。JSON.stringify()设置,并JSON.parse()获得完美的作品。

但是我有一个键,其中的值可以是字符串或空值。它会导致问题。如果我不对其进行字符串化和解析,它将存储null"null",这是一个真实值。

如果我这样做,当值最初是字符串时会引发错误。如我所见,如果我尝试对字符串进行字符串化,则什么也没有发生,这就是原因。

当然我可以使用==(equal value) 作为比较,而不是 stringify 和 parse 来解决问题,但我正在寻找更优雅的东西。

有任何想法吗?

标签: javascriptjson

解决方案


如果您总是使用JSON.parse读取存储在 localStorage 中的值,那么您将能够检索一个null值而不是"null"字符串。

这是一个例子:

function set(value) {
  window.localStorage.test = JSON.stringify(value);
}
function get() {
  return JSON.parse(window.localStorage.test);
}

set(null);
console.log(get()); //Output: null (null value)

set("null");
console.log(get()); //Output: "null" (the string)


推荐阅读