字符串化或为空?

时间:2019-04-03 11:25:54

标签: javascript json

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

我有一个键,其中的值可以是数组或null。 JSON.stringify()进行设置,JSON.parse()进行完善。

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

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

我当然可以使用==(等值)作为比较,而不用字符串化和解析来解决问题,但是我正在寻找更优雅的东西。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果您始终使用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)