我有一个对象数组,这些对象是从JSON响应中的HTTP请求返回的。但是,由于它以对象数组的形式返回,因此我可以在第一个数组中建立索引以选择特定的对象,但是我无法从对象本身中获取任何值。
这是我从请求中得到的回馈。我希望能够对整个数组以及对象本身进行索引,并能够检索第二级数组中列出的名称和值。
{
"costByServiceList": [
{
"EC2 - Other": 0.0774193717,
"Amazon Elastic Compute Cloud - Compute": 0.5568
},
{
"EC2 - Other": 0.0774193867,
"Amazon Elastic Compute Cloud - Compute": 0.5568,
"AWS Cost Explorer": 0.02
},
{
"EC2 - Other": 0.077419386,
"Amazon Elastic Compute Cloud - Compute": 0.5568
},
{
"EC2 - Other": 0.0774193613,
"Amazon Elastic Compute Cloud - Compute": 0.5568
},
{
"EC2 - Other": 0.0774194716,
"Amazon Elastic Compute Cloud - Compute": 0.5568,
"AWS Cost Explorer": 0.76
},
{
"EC2 - Other": 0.0774620825,
"Amazon Elastic Compute Cloud - Compute": 0.5568,
"AWS Cost Explorer": 0.08
},
{
"EC2 - Other": 0.0763515633,
"Amazon Elastic Compute Cloud - Compute": 0.5568
}
]
}
我认为创建一个数组数组可以解决此问题,但最终结果并不要求它是数组数组。
答案 0 :(得分:1)
Object.entries
函数为您提供成对数组中的对象的键值对。
response.costByServiceList.forEach(service =>
Object.entries(service).forEach(([key, value]) => console.log(key, value))));
您可以这样实现您的要求:
let newServices = response.costByServiceList.map(service => Object.entries(service));
这将导致json出现
[
[
["EC2 - Other", 0.0774193717],
["Amazon Elastic Compute Cloud - Compute", 0.5568]
]
]