JSON对象中不需要的键

时间:2017-07-04 14:36:29

标签: javascript arrays json

我正在执行循环后创建一个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"}

  

我的代码中有什么错误?

2 个答案:

答案 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)