对于任何感兴趣的人,我最终在这里构建了一个“本地存储过期”脚本,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/