判断一个变量是不是json,以及如何将变量转换成json

https://blog.csdn.net/A123638/article/details/52486975这里看到一个很好的方法

  // 判断变量是不是json
isJson(variable: any): boolean { return ( typeof variable === "object" && Object.prototype.toString.call(variable).toLowerCase() == "[object object]" && !variable.length ); }

但是我这里有一个需求,判断任何一个变量(任何类型)能不能转换成json对象,并转换;此时要考虑有一些可以转换成json的string类型了

  /* 获取任何变量的json */
  getJson(variable: any): object {
    if (!variable) return null;
    if (this.isJson(variable)) return variable;
    try {
      let json = JSON.parse(variable);
      if (this.isJson(json)) return json;
      else return null;
    } catch {
      return null;
    }
  }