【问题标题】:How to Extract Value Keys From JSON如何从 JSON 中提取值键
【发布时间】:2016-02-15 15:17:58
【问题描述】:

我有以下 JSON 格式,我想从中提取密钥。

我想得到以下键

covg_AccdntDeath_Slf ,
covg_DILong_Slf ,
covg_LITwentyYr_Slf ,
covg_LITenYr_Slf ,
covg_GrpOffOvr_Slf ,
covg_LIAnnual_Slf ,
txtCampaignCode ,
associationAccronym

这是我的 JSON 数据:

{  
  "covg_AccdntDeath_Slf":{  
    "txtGNumber":"G-29003-0",
    "txtPlanName":"Accidental Death and Dismemberment Insurance",
    "hidProdCode":"999",
    "rdTypeOfCovg":"New",
    "slidBenefitAmt":"50000",
    "productCategory":"AD"
  },
  "covg_DILong_Slf":{  
    "txtGNumber":"G-29002-0",
    "txtPlanName":"Long Term Disability",
    "hidProdCode":"601-a",
    "rdTypeOfCovg":"New",
    "txtMaxBenefitAmt":"$15,000",
    "selWaitingPeriod":"30 Days",
    "slidMonBenefitAmt":"1000",
    "productCategory":"DI"
  },
  "covg_LITwentyYr_Slf":{  
    "txtGNumber":"G-29005-0",
    "txtPlanName":"20-Year Level Term Life Insurance",
    "hidProdCode":"121",
    "rdTypeOfCovg":"New",
    "slidBenefitAmt":"100000",
    "productCategory":"LI"
  },
  "covg_LITenYr_Slf":{  
    "txtGNumber":"G-29004-0",
    "txtPlanName":"10-Year Level Term Life Insurance",
    "hidProdCode":"102",
    "rdTypeOfCovg":"New",
    "slidBenefitAmt":"100000",
    "productCategory":"LI"
  },
  "covg_GrpOffOvr_Slf":{  
    "txtGNumber":"G-29002-1",
    "txtPlanName":"Office Overhead Expense Disability Insurance",
    "hidProdCode":"603",
    "rdTypeOfCovg":"New",
    "slidBenefitAmt":"1000",
    "txtMaxBenefitAmt":"$20,000",
    "selWaitingPeriod":"30 Days",
    "selBenefitDuration":"24 months",
    "productCategory":"OO"
  },
  "covg_LIAnnual_Slf":{  
    "txtGNumber":"G-29000-0",
    "txtPlanName":"Traditional Term Life Insurance",
    "hidProdCode":"99999",
    "rdTypeOfCovg":"New",
    "slidBenefitAmt":"100000",
    "productCategory":"LI"
  },
  "txtCampaignCode":"",
  "associationAccronym":"ACS"
}

我试过下面的代码。

 <html>
    <head>
        <script>
            var input = above JSON String.
        var keys = [];
        console.log('Length : '+input.length);
        for(var i = 0;i<input.length;i++)
        {
            Object.keys(input[i]).forEach(function(key){
                if(keys.indexOf(key) == -1)
                {
                    keys.push(key);
                }
            });
        }
        console.log('KKKK: '+keys);
        </script>
    </head>
</html>

【问题讨论】:

标签: javascript arrays json key


【解决方案1】:

您不需要所有这些代码。

1) 将您的 JSON 解析为一个对象:var obj = JSON.parse(json);

2) 对象没有长度,因此循环变得多余。 Object.keys(obj) 确实有长度。

3) 您正在遍历对象键并将它们放入一个新数组中。 Object.keys(obj) 无论如何都会返回一个数组,因为键不能在对象中重复,所以检查当前键是否在 keys 中的条件也是多余的。

您只需要Object.keys(obj),然后您就可以使用forEach 来遍历数组。

类似:

var keys = Object.keys(obj);
keys.forEach(function (el) { console.log(el); });

甚至只是:

Object.keys(obj).forEach(function (el) { console.log(el); });

【讨论】:

    猜你喜欢
    • 2020-05-03
    • 1970-01-01
    • 2015-12-19
    • 1970-01-01
    • 2020-03-31
    • 1970-01-01
    • 2017-06-08
    • 2017-08-24
    • 1970-01-01
    相关资源
    最近更新 更多