我正在执行循环后创建一个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:" new",micrcode1:" mkkk",comments1:" commentsfvfdv",bankname2:" bankfgname",micrcode2: " micrfgcode" ...}
我想把它改成这样的方式
[{bankname1:" new",micrcode1:" mkkk",comments1: " commentsfvfdv"},{bankname2:" bankfgname",micrcode2:" micrfgcode"}]
但它仍然像这样。不太好
{" 0":{bankname1:" new",micrcode1:" mkkk",comments1:
" commentsfvfdv"}," 1":{bankname2:" bankfgname",micrcode2:" micrfgcode"}
我的代码中有什么错误?
答案 0 :(得分:0)
您需要使用数组而不是对象。像这样:
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}]"
答案 1 :(得分:0)
指定
var updatebankdata = [];
然后将你的对象推送到这样的数组
updatebankdata.push(yourObject)