我指的是有關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