2017-09-01 25 views
2

内の既存の値のペアに名前を追加することができます。は、どのように私は、これは私のサンプルJSONでこんにちはJSON

{ 
    "2016-01-01T00:00:00Z": 1, 
    "2016-02-01T00:00:00Z": 2, 
    "2016-03-01T00:00:00Z": 3 
} 

今、私は

[ 
    {"Month":"2016-01-01T00:00:00Z", "Number": 1}, 
    {"Month":"2016-02-01T00:00:00Z", "Number": 2}, 
    {"Month":"2016-03-01T00:00:00Z", "Number": 3} 
] 

私はJS/jQueryのを使用して、これをどのように行うことができますような何かをしたいですか?私はそれらをhtmlテーブルに入れておく必要があるので、上記のフォーマットに変更したいと思いました.2番目のフォーマットを使用すると簡単に仕事ができます。

答えて

2

あなたは、配列の形式を変更するjQueryのmap機能を使用することができます

let obj = { 
 
    "2016-01-01T00:00:00Z": 1, 
 
    "2016-02-01T00:00:00Z": 2, 
 
    "2016-03-01T00:00:00Z": 3 
 
}; 
 
let result = []; 
 
for(element in obj){ 
 
    result.push({"Month":element, "Number": obj[element]}) 
 
} 
 

 
console.log(result);

1

次のようにこれを行うことができます。

let jsonArray = { 
    "2016-01-01T00:00:00Z": 1, 
    "2016-02-01T00:00:00Z": 2, 
    "2016-03-01T00:00:00Z": 3 
}; 

var result = $.map(jsonArray, function (item, key) { 
    return { 
     Month: key, 
     Number: item 
    }; 
}); 
1

あなたはObject.keysでキーを取得し、新しいオブジェクトをマッピングするためArray#mapを使用することができます。

var object = { "2016-01-01T00:00:00Z": 1, "2016-02-01T00:00:00Z": 2, "2016-03-01T00:00:00Z": 3 }, 
 
    result = Object.keys(object).map(function (k) { 
 
     return { Month: k, Number: object[k] }; 
 
    }); 
 

 
console.log(result)
.as-console-wrapper { max-height: 100% !important; top: 0; }

0
var object1 = { 
     "2016-01-01T00:00:00Z": 1, 
     "2016-02-01T00:00:00Z": 2, 
     "2016-03-01T00:00:00Z": 3 
    }; 

    var finalArray = []; 

    for (var key in object1) { 
     if (p.hasOwnProperty(key)) { // p.hasOwnProperty this will check for duplicate key 
      finalArray.push({ 
      “Month” : key, 
      “Number”:p[key] 
     }); 
     } 
    } 

console.log(finalArray) 
0

別のオプションは、このような...

let obj = { 
    '2016-01-01T00:00:00Z': 1, 
    '2016-02-01T00:00:00Z': 2, 
    '2016-03-01T00:00:00Z': 3 
} 

let arr = Object.keys(obj).map(key => { 
    return {'Month': key, 'Number': obj[key]} 
}); 

JSFiddle demo

0

旅行のために使用$.eachとしてmapとともにObject.keysを使用して含めることができます玲

a = { 
     "2016-01-01T00:00:00Z": 1, 
     "2016-02-01T00:00:00Z": 2, 
     "2016-03-01T00:00:00Z": 3 
    } 

var b = []; 
$.each(a, function(key, value) { 
    b.push({mounth: key ,number: value }); 
}); 

出力は次のようになります。

0:{mounth: "2016-01-01T00:00:00Z", number: 1} 
1:{mounth: "2016-02-01T00:00:00Z", number: 2} 
2:{mounth: "2016-03-01T00:00:00Z", number: 3} 
関連する問題