以下のようにjsonの再帰について多くのサイトを参照しています
JavaScript の再帰が正しく機能しない
オブジェクトに対する jQuery の再帰的反復
しかし、それらのほとんどは、キーを知っているか、知っているキーを使用して反復します。また、 $.each は、キーと値の両方が {"firstname" : "lastname"} などの文字列である場合にうまく機能し、関数 (k,v) はキーと値をそれぞれ k & v として与えることができます。
しかし、json オブジェクトが複雑で何が来ているか分からない場合、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
}
キー名を特定して比較する方法があれば、問題ありません。キーを比較しやすいため、この tagName は以下の URL で提案されているように機能するはずです
しかし、通常の json オブジェクトの属性 tagname では機能しないようです。text()、attr() などの firefox 属性を調べても、tagName が取得されません。私が望むのは、jsonオブジェクトをループして(実際にはxml2jsonプラグインを使用してxmlを上記のjson形式に変換しています)、存在する場合はキーを比較してアクションを実行することです。XML では、nodeName を使用して同じことができることを知っています。JSON オブジェクトを使用して同じことを行うにはどうすればよいですか。