我在变量中有一个 json 结构,说“数据”,就像这样
{
"SearchWithMasterDataDIdAndScandefinitionDAO": [
{
"dateDm_id": 20120602,
"issueValue": "ELTDIWKZ",
"scanName": "Company Stored as Person (Given Name)",
"severityCode": 1,
"severityName": "High",
"totalDiscovered": 1
},
{
"dateDm_id": 20120602,
"issueValue": "LTDFPVOI",
"scanName": "Company Stored as Person (Given Name)",
"severityCode": 1,
"severityName": "High",
"totalDiscovered": 1
},
{
"dateDm_id": 20121005,
"issueValue": "LTDILWGY",
"scanName": "Company Stored as Person (Given Name)",
"severityCode": 1,
"severityName": "High",
"totalDiscovered": 1
},
{
"dateDm_id": 20121005,
"issueValue": "YMORCLTD",
"scanName": "Company Stored as Person (Given Name)",
"severityCode": 1,
"severityName": "High",
"totalDiscovered": 1
}
]
}
现在我想将这个结构更改为这样的 其中每个对象的 datedm_id 成为新 json 结构的根,以数组作为值 新的通缉结构:
{
"20120602": [
{
"issueValue": "ELTDIWKZ",
"scanName": "Company Stored as Person (Given Name)",
"severityCode": 1,
"severityName": "High",
"totalDiscovered": 1
},
{
"issueValue": "LTDFPVOI",
"scanName": "Company Stored as Person (Given Name)",
"severityCode": 1,
"severityName": "High",
"totalDiscovered": 1
}
],
"20121005": [
{
"issueValue": "YMORCLTD",
"scanName": "Company Stored as Person (Given Name)",
"severityCode": 1,
"severityName": "High",
"totalDiscovered": 1
},
{
"issueValue": "COOPER",
"scanName": "Company Stored as Person (Given Name)",
"severityCode": 1,
"severityName": "High",
"totalDiscovered": 15
}
]
}
请帮我解决这个问题
最佳答案
参见 fiddle :http://jsfiddle.net/YVB2Y/
总之,您需要在 for 循环内创建一个对象。
var returnVar = {}
b.SearchWithMasterDataDIdAndScandefinitionDAO.forEach(function(item){
var thisItem;
if(returnVar[item.dateDm_id] == undefined){
thisItem = [];
returnVar[item.dateDm_id] = thisItem;
}
else {
thisItem = returnVar[item.dateDm_id];
}
var obj = {};
obj.issueValue = item.issueValue;
//and so on..
thisItem.push(obj);
});
console.log(returnVar);
关于javascript - 使用现有的 json 结构在 javascript 中构建 json 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21400314/