2012-02-14 5 views
0

私は現在ディレクトリにあるXMLファイルを(動的に)読み込み、JSON経由でクライアントに送り返すペー​​ジに取り組んでいます。しかし、返されるJSON配列の動的要素を参照する方法がわかりません。例えば。

$.getJSON('getfilenames.php', function(data) { 
    for(var i in data) 
    { 
     var temp3 = data[i].name;(<-- if I dont know what .name was) 
     var temp2 = temp3.replace(".xml",""); 
     temp = temp +'<option value="'+temp3+'">' +temp2 +'</option>'; 
    } 
    temp = temp +'</select>'; 
    $("#div2").html(temp); 
} 

私はすでにデータ内.nameの要素が何であったか知らなかった場合は

、どのようにできたI: A:参照、またはBのためにそれらのリストを取得:それを自分自身を行うには、データにアクセスします。 要素内から要素を取得する方法についても興味があります。 EG:

{"contact":{"@attributes":{"id":"1"},"name":"John Doe","phone":"123-456-7890","address":"\n 123 JFKStreet\n "}} 

名前属性をどのように取得できますか。

答えて

1

あなただけ(あなたの最後の例から

..あなたが複数の.表記を持つオブジェクトに深いと行くことができ

for (var prop in data[i]){ 
    // prop hold the name of the property (name) in your example 
    // do something with data[i][prop] 
} 

...返されたオブジェクトのプロパティを反復処理する必要があります

data.contact.name // "John Doe" 
data.contact['@attributes'].id // 1 - we used the [] syntax because of @ 
+0

は、だから私は見つけるために、データを反復処理します)このオブジェクトを保持する変数がdataであると仮定すると最初の要素のセットを外部配列に保存し、データを見つけるまでそのAray(data.whateverelement [i])を繰り返します。 – Fearlessunyielding

+0

1つのレベルを扱う関数を作成し、それを再帰的に使用してデータ全体を読み取ることができます。ただし、データをスクリーンにダンプする以外にデータを使用する場合は、探しているものを知る必要があります.. soomeあなたが望むデータに到達したことを識別する方法。 –

+0

私は今までに最大2人の子供、EGルート、子供の子供を行く必要があります。 (jsonはXMLファイルからまっすぐに来ます)、その制約は2つのforステートメントを実行するだけで十分でしょうか? – Fearlessunyielding

関連する問題