嗨,在执行循环之后,我正在创建一个JSON对象。问题是JSON对象有额外的键。我不想要那钥匙。钥匙是由我产生的。根据我的要求提审了json。这是我用来创建JSON对象的代码
var bankdata = data;
var updatebankdata = {}
for (var key in bankdata) {
var id = +key.substr(key.length - 1);
if (isNaN(id)) {
updatebankdata[0] = updatebankdata[0] || {};
updatebankdata[0][key] = bankdata[key];
} else {
var uniqid=$("#bankaccount"+id).attr("uniq_id");
updatebankdata[id] = updatebankdata[id] || {};
var field = key.substring(0, key.length - 1);
updatebankdata[id][field] = bankdata[key];
updatebankdata[id]["uniquid"] = uniquid;
}
}
return updatebankdata;
}
我的银行数据就像
{bankname1:“新”,micrcode1:"mkkk",comments1:“评论员”,bankname2:"bankfgname",micrcode2:"micrfgcode"…}
我想把它变成这样
{bankname1:“新”,micrcode1:"mkkk",comments1:“评论员”},{bankname2:"bankfgname",micrcode2:"micrfgcode"}
但还是变得像这样.its不好
{"0":{bankname1:“新”,micrcode1:"mkkk",comments1: “注释”},"1":{bankname2:"bankfgname",micrcode2:"micrfgcode"}
我的代码中有什么错误?
发布于 2017-07-04 14:50:57
您需要使用数组而不是对象。就像这样:
function func(data) {
var bankdata = data;
var updatebankdata = []; // ARRAY instead of Object
for (var key in bankdata) {
var id = +key.substr(key.length - 1);
if (isNaN(id)) {
updatebankdata[0] = updatebankdata[0] || {};
updatebankdata[0][key] = bankdata[key];
} else {
var uniqid=$("#bankaccount"+id).attr("uniq_id");
updatebankdata[id] = updatebankdata[id] || {};
var field = key.substring(0, key.length - 1);
updatebankdata[id][field] = bankdata[key];
updatebankdata[id]["uniquid"] = uniqid; // CHANGED to "uniqid" to match variable declaration above, not the key on the left is still "uniquid"
}
}
return updatebankdata;
}
然后你就可以得到这样的结果:
JSON.stringify(func({name: 'someval', val: 123}));
"[{"name":"someval","val":123}]"
发布于 2017-07-04 15:02:13
分配
var updatebankdata = [];
然后将对象按如下方式排列
updatebankdata.push(yourObject)
https://stackoverflow.com/questions/44908714
复制相似问题