我想按如下方式创建一个JSON对象:
{
"PROMO": {
"ID": 1,
"NAME": "PROMO ONE",
"BUNDLES": {
"0": {
"BUNDLE": {
"BUNDLE_ID": 1,
"BUNDLE_NAME": "BUNDLE ONE"
},
"ARTICLE": {
"ARTICLE_IDS": "550,398,475"
}
},
"1": {
"BUNDLE": {
"BUNDLE_ID": 1,
"BUNDLE_NAME": "BUNDLE ONE"
},
"ARTICLE": {
"ARTICLE_IDS": "125,250,323"
}
}
}
}
}
我想要做的是,将BUNDLE
和ARTICLE
对象合并,然后推入BUNDLES
数组。我尝试了许多方法但没有成功组合两个对象。
例如,我尝试了以下内容:
var BUNDLES = [];
var BUNDLE = {};
var ARTICLE = {};
BUNDLE.BUNDLE_ID = 1;
BUNDLE.BUNDLE_NAME = "BUNDLE ONE";
ARTICLE.ARTICLE_IDS = "550,398,475";
// here, I want to combine ARTICLE and BUNDLE then push into array
BUNDLES.push(BUNDLE)
答案 0 :(得分:0)
这会做你的。可能有一个更简洁的方式,但这就是我想要的。
var json = {
"PROMO": {
"ID": 1,
"NAME": "PROMO ONE",
"BUNDLES": {
"0": {
"BUNDLE": {
"BUNDLE_ID": 1,
"BUNDLE_NAME": "BUNDLE ONE"
},
"ARTICLE": {
"ARTICLE_IDS": "550,398,475"
}
},
"1": {
"BUNDLE": {
"BUNDLE_ID": 1,
"BUNDLE_NAME": "BUNDLE ONE"
},
"ARTICLE": {
"ARTICLE_IDS": "125,250,323"
}
}
}
}
}
var array = [];
for(var i in json.PROMO.BUNDLES){
var obj = {};
for(var j in json.PROMO.BUNDLES[i]){
obj[j] = json.PROMO.BUNDLES[i][j]
//console.log(j + " " + obj[j]);
}
array.push(obj);
}
json.PROMO.BUNDLES = array;
console.log(json.PROMO.BUNDLES);