如何在javascript中检查对象类型是否为JSON?

142 阅读1分钟

这是一个关于如何在javascript和typescript中检查一个对象是JSON的简短教程。

JSON是简单的数据,它的键和值都用括号括起来。

JSON对象在javascript中没有类型表示,它们被视为普通的字符串。

有时,我们可能会想到并需要回答以下问题

  • 检查一个字符串是否是一个有效的JSON对象

  • 找到一个json格式的对象

  • 字符串变量是否可以被json解析?

  • Javascript有一个JSON 类,它有一个parse 方法来把字符串转换成一个对象。

  • try andcatch`块中封闭parse 方法

  • 如果JSON不能被解析,它会抛出一个错误。

这里有一个函数来检查字符串是否是有效的JSOn 有效的JSON对象返回true,无效的JSON数据返回false。

function isJsonObject(strData) {
    try {
        JSON.parse(strData);
    } catch (e) {
        return false;
    }
    return true;
}
let jsondata = '{"username": "admin"}';
let notjsondata = 'username-admin';
console.log(isJsonObject(jsondata) ); // returns true
console.log(isJsonObject(notjsondata) );// returns false

使用npm库检查对象类型

有许多npm库可以检查本地对象类型。

以下是两个node库:

@sindresorhus/is

kind-of

我们将为 kindOf npm 库写一个例子。

首先,使用npm命令安装。

npm install  kind-of --save-dev

这里有一个简单的程序来检查数据的类型

var kindOf = require('kind-of');

console.log(kindOf(12312)); // returns number
 console.log(kindOf("test")); // returns string
 console.log(kindOf(false)); // returns boolean

kindOf({"username":"admin"}); // object

摘要

总结一下,使用JSOn解析方法了解变量类型是否为JSON对象。

  • JSOn解析方法得知变量类型是否为JSON对象
  • npm libraries kindOf