我有一个通过JSON.Stringify函数从对象转换的json字符串。
我想知道它是json字符串还是普通字符串。
是否有类似“ isJson()”的函数来检查它是否为json?
我想在使用本地存储(如下面的代码)时使用该函数。
先感谢您!!
var Storage = function(){} Storage.prototype = { setStorage: function(key, data){ if(typeof data == 'object'){ data = JSON.stringify(data); localStorage.setItem(key, data); } else { localStorage.setItem(key, data); } }, getStorage: function(key){ var data = localStorage.getItem(key); if(isJson(data){ // is there any function to check if the argument is json or string? data = JSON.parse(data); return data; } else { return data; } } } var storage = new Storage(); storage.setStorage('test', {x:'x', y:'y'}); console.log(storage.getStorage('test'));
“简单”的方法是try在失败时解析并返回未解析的字符串:
try
var data = localStorage[key]; try {return JSON.parse(data);} catch(e) {return data;}