javascript - 如何判断一个字符串是否是一个字符串化的 JSON 对象

标签 javascript jquery json local-storage

对于任何感兴趣的人,我最终在这里构建了一个“本地存储过期”脚本,http://plugins.jquery.com/project/localcache

我在做什么:构建存储扩展,以便用户可以执行此操作:

localStorage.setThing(key, value)

并且用户可以执行以下操作:

localStorage.setThing("key1", 1)
localStorage.setThing("key2", "this is a string")
localStorage.setThing("key3", { prop1: "this is a json obj" })

在我的 setThing 方法中,我正在检查值的类型,如果 typeof value == "object",我将其存储为 localStorage.setItem(key, JSON.stringify(值))

在 getThing 方法中,我知道进入 localStorage 的值始终是一个字符串。那么,我该怎么做呢?

var val = localStorage.getItem("key3")
if (val is a previously JSON.stringify'd object) // <-- ??
    return JSON.parse(val)

我是否需要对 val 进行正则表达式检查,如果需要,是否有人手头有一个模式可以告诉我字符串是否真的是一个 JSON.stringify 对象?

谢谢!

最佳答案

判断字符串是否为 JSON 的通常方法是通过 JSON 解码器运行它。如果成功,则为 JSON :-) 此处不需要正则表达式。

关于javascript - 如何判断一个字符串是否是一个字符串化的 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8205993/

相关文章:

javascript - 滚动到一个链接并激活它

javascript - 谷歌图表无法正常工作而不引发异常

php - 解析存储在mysql表中的json字段作为php变量

javascript - jQuery + JSON - 在附加之前清除数据

javascript - php/javascript 无法在线工作

javascript - 从类组件切换到函数组件

javascript - JS中获取隐藏输入字段的值

javascript - 当第二个元素应该被推送时,json 键被分配一个数字而不是数组

javascript - jQuery下一个div点击循环

javascript - 确定 ajax 调用是否由于不安全的响应或连接被拒绝而失败