2012-04-10 4 views
0

私は入力する気に比べてより多くの名前の値のペアを持つJSONファイルを持っています。私がすべての名前の値のペアをタイプする必要があるところで、以下にあるものを使う代わりに、val.nameのようなvalのプロパティがなければならないので、他のすべてのペアをタイプする必要はありません。検索する適切な用語は何ですか?答えを見つけますか?またはコードも素敵でしょう:)javascript each - (key、val)のvalの名前を自動検出

これは、私が思ったときに使い始めたことです。「ごめんなさい、#& @ $ out!私は右のあなたの質問を理解していた場合

$.each(data, function(key, val) { 
      items.push(key + val.TimeStamp + val.bandwidth +); 

JSONは

{ 
    "Router": "HS-DSCS1", 
    "router_data": [ 
     { 
      "TimeStamp": "2012/01/01 06:00:00", 
      "NeighborIP": "192.168.1.1", 
      "State": "Full", 
      "Bytes001": "21362.95663", 
      "Bytes002": "2.67 KB", 
      "Bytes003": "9887.99707", 
      "Bytes004": "1.24 KB", 
      "Bytes005": "Serial0/1/0" 
     } 
    ] 
} 
+0

あなたの質問がありますか?データの反復またはval以上の反復? – Bergi

+1

?あなたのコードサンプルは 'data'オブジェクトを反復していますので、なぜ' val'に対して同じことをすることができませんか? – nnnnnn

+0

val.TimeStamp、val.BandWidthなどを入力しなくても、オブジェクトのすべてのプロパティをオブジェクトにプッシュしたいと思っています。これは、JSON配列(データ)からオブジェクトを作成する方法のようです。 – rd42

答えて

2

文字列連結のみのようです。もしそうなら...

$.each(data, function(key, val) { 
    items.push(key + $.map(val, String).join('')); 
}); 

DEMO:http://jsfiddle.net/ZVDcy/


それとも、新しいアレイを構築している場合は、あなたがこれを行うことが...

var items = $.map(data, function(val, key) { 
    return key + $.map(val, String).join(''); 
}); 

デモ:http://jsfiddle.net/ZVDcy/1/

+0

私は、alert(items.join( '\ n')))を使ってjsonのすべての列を検証しようとしました。最初の値のセットのみが表示されます。何が入っているかを確認するために、アレイの内容をコンソールに出力するより良い方法はありますか? – rd42

+0

ブラウザのコンソールには、あなたが得ているものが正確に表示されるはずです。 'data'はちょうど1つのレベルよりも深くネストされていますか?あなたの質問にあなたのデータ構造を表示できますか? –

+0

私はそれを質問に加えました。 – rd42

2

、ちょうどfor..inを使用しています。

関連する問題