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] 举报,一经查实,本站将立刻删除。