我参考了很多关于 json 递归的网站,如下所示
JavaScript 递归不能正常工作
jQuery 对对象的递归迭代
但他们中的大多数要么知道密钥,要么使用已知密钥进行迭代。如果 key & value 都是字符串,例如 {"firstname" : "lastname"} & then function (k,v) 可以分别将 key & value 作为 k & v,则 $.each 也很有效。
但是,如果 json 对象很复杂并且我们不知道什么是关键,例如在 JSON1 和 JSON2 中的键不同,JSON1 中的键 1、3、2 被 JSON2 响应中的 5、6 和 10 替换。
JSON1
{
"one": true,
"three": [
"red",
"yellow",
[
"blue",
"azure",
"cobalt",
"teal"
],
"orange"
],
"two": 19.5
}
JSON2
{
"five": true,
"six": [
"red",
"yellow",
[
"blue",
"azure",
"cobalt",
"teal"
],
"orange"
],
"ten": 19.5
}
如果我们可以知道密钥名称然后进行比较就可以了。更容易比较密钥,因为这个 tagName 应该按照下面 URL 中的建议工作
但是对于普通的 json 对象属性标记名似乎不起作用。检查诸如 text()、attr() 之类的 firefox 属性并没有得到我的 tagName。我想要的是循环遍历 json 对象(实际上我使用 xml2json 插件将 xml 转换为上述 json 格式)并比较键(如果存在)并执行操作。我知道在 XML 中你可以使用 nodeName 来做同样的事情。我应该如何使用 JSON 对象做同样的事情。