прохождение через строку JSON на внутренние уровни с использованием рекурсивной функции
У меня есть вход JSON, который может перейти на любое количество уровней.
Я даю входную выборку
<code>var d=getEntities( {"Categories": { "Facets": [ { "count": 1, "entity": "Company", "Company": [ { "entity": "Ford Motor Co", "Ford_Motor_Co": [ { "count": 1, "entity": "Ford" } ] } ] }, { "count": 4, "entity": "Country", "Country": [ { "entity": "Germany", "Germany": [ { "count": 1, "entity": "Germany" } ], "currency": "Euro (EUR)" }, { "entity": "Italy", "Italy": [ { "count": 1, "entity": "Italy" } ], "currency": "Euro (EUR)" }, { "entity": "Japan", "Japan": [ { "count": 1, "entity": "Japan" } ], "currency": "Yen (JPY)" }, { "entity": "South Korea", "South_Korea": [ { "count": 1, "entity": "South Korea" } ], "currency": "Won (KRW)" } ] }, {"count": 5, "entity": "Persons", "Persons": [ { "count": 2, "entity": "Dodge" }, { "count": 1, "entity": "Dodge Avenger" }, { "count": 1, "entity": "Major League" }, { "count": 1, "entity": "Sterling Heights" } ] } ] }}); </code>
Я хочу добавить значение ключа "Entity" на всех уровнях в массив с использованием рекурсии,
Я могу собирать данные с первого уровня, используя строку
<code><html> <head> <script src="jquery.js" type="text/javascript"></script> <script type="text/javascript" src="dataDumper.js"></script> <script type="text/javascript"> var testJSON = {"Categories": { "Facets": [ { "count": 1, "entity": "Company", "Company": [ { "entity": "Ford Motor Co", "Ford_Motor_Co": [ { "count": 1, "entity": "Ford" } ] } ] }, { "count": 4, "entity": "Country", "Country": [ { "entity": "Germany", "Germany": [ { "count": 1, "entity": "Germany" } ], "currency": "Euro (EUR)" }, { "entity": "Italy", "Italy": [ { "count": 1, "entity": "Italy" } ], "currency": "Euro (EUR)" }, { "entity": "Japan", "Japan": [ { "count": 1, "entity": "Japan" } ], "currency": "Yen (JPY)" }, { "entity": "South Korea", "South_Korea": [ { "count": 1, "entity": "South Korea" } ], "currency": "Won (KRW)" } ] }, {"count": 5, "entity": "Persons", "Persons": [ { "count": 2, "entity": "Dodge" }, { "count": 1, "entity": "Dodge Avenger" }, { "count": 1, "entity": "Major League" }, { "count": 1, "entity": "Sterling Heights" } ] } ] }}; function scan(obj) { var k; if (obj.hasOwnProperty('entity')) { for (k in obj){ if (obj.hasOwnProperty(k)){ scan( obj[k] ); } } } else{ if(k=='entity') { alert(obj.entity); } } }; scan(testJSON); </script> </head> <body> </body> </html> </code>
Как мне попасть на внутренние уровни для строки JSON с помощью рекурсивных функций?