📜  if条件判断json对象是否有jsonarray或jsonobject - Javascript(1)

📅  最后修改于: 2023-12-03 14:42:04.139000             🧑  作者: Mango

判断JSON对象是否有JSONObject或JSONArray

在JavaScript中,我们通常使用JSON(JavaScript Object Notation)格式存储和传输数据。在处理JSON对象时,有时需要判断JSON对象是否包含JSONObject或JSONArray。下面将介绍如何使用if条件语句来判断JSON对象中是否存在JSONObject或JSONArray。

判断JSON对象是否有JSONObject

判断JSON对象是否有JSONObject,可以使用typeof操作符和JSON.parse()方法。具体步骤如下:

  1. 首先,使用typeof操作符判断JSON对象的类型是否为字符串。
if (typeof jsonString === 'string') {
  // 确认传递的参数类型为字符串
}
  1. 然后,使用JSON.parse()方法将JSON字符串转换为JavaScript对象。如果该JSON字符串中包含JSONObject,则转换后对应的JavaScript对象也会包含对应的JSONObject。因此,在判断JSON对象中是否有JSONObject时,我们可以判断该JavaScript对象中的属性是否为JSONObject类型。
const jsonObj = JSON.parse(jsonString);
if (typeof jsonObj === 'object' && !Array.isArray(jsonObj) && jsonObj !== null) {
  // 确认该JSON对象不是JSONObject
}

完整代码如下:

function hasJsonObject(jsonString) {
  if (typeof jsonString === 'string') {
    const jsonObj = JSON.parse(jsonString);
    if (typeof jsonObj === 'object' && !Array.isArray(jsonObj) && jsonObj !== null) {
      return true;
    }
  }
  return false;
}

console.log(hasJsonObject('{"key": {"nestedKey": "value"}}')); // true
console.log(hasJsonObject('["value1", "value2"]')); // false
判断JSON对象是否有JSONArray

判断JSON对象是否有JSONArray同样可以使用typeof操作符和JSON.parse()方法。具体步骤如下:

  1. 同样使用typeof操作符判断JSON对象的类型是否为字符串。
if (typeof jsonString === 'string') {
  // 确认传递的参数类型为字符串
}
  1. 然后,使用JSON.parse()方法将JSON字符串转换为JavaScript对象。如果该JSON字符串中包含JSONArray,则转换后对应的JavaScript对象也会包含对应的JSONArray。因此,在判断JSON对象中是否有JSONArray时,我们可以判断该JavaScript对象中的属性是否为JSONArray类型。
const jsonObj = JSON.parse(jsonString);
if (Array.isArray(jsonObj)) {
  // 确认该JSON对象为JSONArray
}

完整代码如下:

function hasJsonArray(jsonString) {
  if (typeof jsonString === 'string') {
    const jsonObj = JSON.parse(jsonString);
    if (Array.isArray(jsonObj)) {
      return true;
    }
  }
  return false;
}

console.log(hasJsonArray('{"key": {"nestedKey": "value"}}')); // false
console.log(hasJsonArray('["value1", "value2"]')); // true

以上就是判断JSON对象是否包含JSONObject或JSONArray的方法。