javascript - 字符串化一个字符串还是空?
问题描述
我将数据作为 JSON 对象存储在 中localStorage
,因为有时它可以是一个数组,我可以在那里存储值。
我有一个键,其中的值可以是一个数组,也可以是 null。JSON.stringify()
设置,并JSON.parse()
获得完美的作品。
但是我有一个键,其中的值可以是字符串或空值。它会导致问题。如果我不对其进行字符串化和解析,它将存储null
为"null"
,这是一个真实值。
如果我这样做,当值最初是字符串时会引发错误。如我所见,如果我尝试对字符串进行字符串化,则什么也没有发生,这就是原因。
当然我可以使用==
(equal value) 作为比较,而不是 stringify 和 parse 来解决问题,但我正在寻找更优雅的东西。
有任何想法吗?
解决方案
如果您总是使用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)
推荐阅读
- java - 我正在使用 selenium 在 java 中创建方法,但出现错误
- java - @Transactional 不适用于 Spring Boot 和 JDBC
- java - 另一种不使用“*”运算符将两个数字相乘的方法
- java - 如何在 Android 中管理资源
- ios - iOS App 传输对推送通知的影响
- php - 如何在一个删除查询中使用多个表名 - 并非所有表都有数据
- json - Angular 6 JSON 反序列化
- tsql - T-SQL FTS 包含单个字符“n”匹配数字
- javascript - Javascript不释放内存?
- javascript - 防止值改变时滑块跳动