一尘不染

如何检查它是字符串还是json

json

我有一个通过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'));

阅读 483

收藏
2020-07-27

共1个答案

一尘不染

“简单”的方法是try在失败时解析并返回未解析的字符串:

var data = localStorage[key];
try {return JSON.parse(data);}
catch(e) {return data;}
2020-07-27