我指的是有关JSON的递归许多站点如下jQuery的复杂JSON对象名称
JavaScript recursion does not work properly
jQuery recursive iteration over objects
但大多要么知道密钥或使用知道键循环。如果键&的值都是字符串,例如{“firstname”:“lastname”} &,那么函数(k,v)可以分别给出键&的值作为k &v。
但在情况下,如果JSON对象是复杂&我们没有什么未来是关键的可以是任何例如在JSON1 & JSON2是关键之一,三个不同的,两个JSON1由五个替代,六&十名JSON2响应。
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
}
如果一些我们怎么能知道密钥名&然后比较这将是确定。更容易比较的钥匙,对于此标记应该是工作在URL以下建议
Can jQuery provide the tag name?
但对于正常的JSON对象属性标记名似乎并没有工作。检查firefox属性,如text(),attr(),不会让我tagName。我想要的是通过json对象循环(实际上我使用xml2json插件将xml转换为以上json格式)&比较键如果存在并执行操作。我知道在XML中你可以使用nodeName来做同样的事情。我应该如何使用JSON对象来做同样的事情。
不过我不知道,我得到了这个问题,但也许你是不是在谈论像JSON指针(又名XPath for JSON)?在这种情况下,也许[这个库](http://goessner.net/articles/JsonPath/)可能会有所帮助? – raina77ow
例如,如果您迭代具有行和单元格的html表格,则可以为每个表格,每行和每个单元格写入3个循环,但是如果每个单元格都有内部表格,该怎么办?然而在这里,你知道有三个标签table,row,&cell,但是如果JSON对象元素可以按照上面给出的JSON1&JSON2中的任何顺序出现,并且你正在迭代它,那么如何知道什么是当前元素而不知道tagName。因此,如果JSON对象结构和元素(key,val)结构发生变化,我们如何才能知道当前哪个键以及它的子进程被处理了。 – user593029
无论你的表有多少行和列。关键是它有_rows_和_columns_;所以你的迭代将永远是两层深的。 – raina77ow