微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

json字符串比较是否相等

JSON字符串是一种常见的数据交换格式,在比较两个JSON字符串是否相等时,我们需要了解JSON字符串的格式以及比较方法

json字符串比较是否相等

JSON字符串的格式一般由键值对构成,键值对之间使用逗号分隔,整个字符串由花括号包裹。例如:

{
  "name": "Jack","age": 23,"hobbies": ["reading","swimming","traveling"]
}

在比较两个JSON字符串是否相等时,我们需要将它们分别转化为JSON对象,并使用递归的方法进行比较,代码如下:

function compareJSON(json1,json2) {
  if (typeof json1 !== typeof json2) {
    return false;
  }
  if (typeof json1 === 'object') {
    const keys1 = Object.keys(json1);
    const keys2 = Object.keys(json2);
    if (keys1.length !== keys2.length) {
      return false;
    }
    for (let key of keys1) {
      if (!json2.hasOwnProperty(key)) {
        return false;
      }
      if (!compareJSON(json1[key],json2[key])) {
        return false;
      }
    }
    return true;
  } else if (typeof json1 === 'string') {
    return json1 === json2;
  } else {
    return json1 === json2;
  }
}
const json1 = '{"name": "Jack","traveling"]}';
const json2 = '{"name": "Jack","traveling"]}';
console.log(compareJSON(JSON.parse(json1),JSON.parse(json2)));  // true

在上述代码中,我们首先判断两个JSON对象的类型是否相同,如果不同则返回false。如果两个对象都是对象类型,我们将它们的键值对分别遍历比较。如果两个对象中某些键不存在,则返回false;如果值类型不同,则返回false;如果所有键值对都一样,则返回true。

如果两个对象都是字符串或数字类型,则直接比较它们的值是否相等。

以上是关于JSON字符串比较是否相等的介绍,希望对大家有所帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐