0

私はこの形式のJsonを持っています:

{"year":{"month1":{"date1":{"device1":{"users":6}}}}

サンプル:

{"2013":{"2":{"5":{"GT-N7000":{"users":1}},"6":{"GT-N7000":{"users":9},"HTC Sensation Z710a":{"users":1}},"7":{"GT-N7000":{"users":15},"HTC Sensation Z710a":{"users":2},"M903":{"users":1}}}}}

Json からユーザーの新しい配列を生成するにはどうすればよいですか。例えば:

GT-N7000 = [1, 9, 15]
M903 = [1]

ネストされたforループを試しましたが、for..inループも試しました。私は間違いを犯していると確信しています。このようなネストされたjsonオブジェクトに必要な情報をフィルタリング/解析する方法はありますか?

4

2 に答える 2

3

私はあなたが次のようなことをすると思います:

var json = {"2013":{"2":{"5":{"GT-N7000":{"users":1}},"6":{"GT-N7000":{"users":9},"HTC Sensation Z710a":{"users":1}},"7":{"GT-N7000":{"users":15},"HTC Sensation Z710a":{"users":2},"M903":{"users":1}}}}}; 

var result = {}, year, month, date, item;
for (year in json) {
  for(month in json[year]) {
    for(date in json[year][month]) {
       for(item in json[year][month][date]) {
          if(item in result) {
              result[item].push(json[year][month][date][item].users)  // this bit might need editing?
          } else {
              result[item] = [json[year][month][date][item].users] // this be also might need editing
          }
       }
    }
  }
}
于 2013-02-25T11:38:04.453 に答える
0

最新のブラウザーのほとんどは、ネイティブの JSON.parse メソッドをサポートしています。詳細については、この質問を参照してくださいブラウザネイティブの JSON サポート (window.JSON)

于 2013-02-25T11:34:28.170 に答える