简体   繁体   English

迭代JSON将结果放入数组中

[英]Iterating over JSON put results into an Array

I have a JSON Object from a REST API like this: 我有一个来自REST API的JSON对象,如下所示:

{
  success: true,
  message: "",
  result: [{
      Currency: "GBP",
      IsActive: true,
      BaseAddress: "1N52wHoVR79PMDishab2XmRHsbekCdGquK",
      Notice: null
    },
    {
      Currency: "USD",
      IsActive: true,
      BaseAddress: "LhyLNfBkoKshT7R8Pce6vkB9T2cP2o84hx",
      Notice: null
    },
    {
      Currency: "YEN",
      IsActive: true,
      BaseAddress: "D9GqmkGCpgtnXP7xMD78v9xfqeDkqBZBMT",
      Notice: null
    }
  ]
};

I just want a list of the Currency values so am iterating over it like this: 我只想要一个货币值列表,所以我这样迭代它:

var data = body.result;
for (var i in data) {
  var id = data[i].Currency;
  console.log(id)
}

Console prints ok: 控制台打印好了:

GDP
USD
YEN

But I want to put these strings into a new Array and can't figure out how to do it. 但是我想把这些字符串放到一个新的数组中,并且无法弄清楚如何去做。 Any ideas? 有任何想法吗?

Simply use the Array#Map function: 只需使用Array#Map功能:

 const data = { success: true, message: "", result: [{ Currency: "GBP", IsActive: true, BaseAddress: "1N52wHoVR79PMDishab2XmRHsbekCdGquK", Notice: null }, { Currency: "USD", IsActive: true, BaseAddress: "LhyLNfBkoKshT7R8Pce6vkB9T2cP2o84hx", Notice: null }, { Currency: "YEN", IsActive: true, BaseAddress: "D9GqmkGCpgtnXP7xMD78v9xfqeDkqBZBMT", Notice: null }, { Currency: "YEN", IsActive: true, BaseAddress: "D9GqmkGCpgtnXP7xMD78v9xfqeDkqBZBMT", Notice: null } ] } const currencies = [...new Set(data.result.map(a => a.Currency))]; console.log(currencies); 

 var body = { success: true, message: "", result: [{ Currency: "GBP", IsActive: true, BaseAddress: "1N52wHoVR79PMDishab2XmRHsbekCdGquK", Notice: null }, { Currency: "USD", IsActive: true, BaseAddress: "LhyLNfBkoKshT7R8Pce6vkB9T2cP2o84hx", Notice: null }, { Currency: "YEN", IsActive: true, BaseAddress: "D9GqmkGCpgtnXP7xMD78v9xfqeDkqBZBMT", Notice: null } ] }; var res = body.result.map(item => { return item.Currency }); console.log(res); 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM