javascript - 我如何解析这个复杂的 json nodejs
问题描述
我正在尝试解析 json
request(requestOptions,(err,res,body)=>{
for(var i in body){
console.log(body.data[0].quote.USD.price)
}
})
json就像
{ status: {something},
data: [{
id:1,
name:'Bitcoin',
symbol:'BTC',
slug:'bitcoin',
circulating_supply:17400325,
total_supply:17400325,
max_supply:21000000,
date_added:'2013-04-28T00:00:00.000Z',
num_market_pairs:6618,
tags:[
Array
],
cmc_rank:1,
last_updated:'2018-11-30T11:00:28.000Z',
quote:[
Object
]
}]
}
引用对象是:
{ USD:
{ price: 4071.55349237,
volume_24h: 5966638087.9657,
percent_change_1h: -3.18515,
percent_change_24h: -6.66359,
percent_change_7d: -5.74611,
market_cap: 70846354022.12302,
last_updated: '2018-11-30T11:03:22.000Z' } }
“我提到了两个 json 对象,一个是上面 json 的副本”。
{ status:{ },
data:[ ]
}
我运行上面的代码它给了我这个输出:
1 比特币 BTC 4030.51947765 1 比特币 BTC 4030.51947765
请帮助我如何获取对象的所有“id”、“name”、“symbol”、“price”,并将其保存到一个数组中。
解决方案
简单地映射它:
https://stackblitz.com/edit/js-c1fwsf
const req = {
data: [
{
id:1,
name:'Bitcoin',
symbol:'BTC',
slug:'bitcoin',
circulating_supply:17400325,
total_supply:17400325,
max_supply:21000000,
date_added:'2013-04-28T00:00:00.000Z',
num_market_pairs:6618,
cmc_rank:1,
last_updated:'2018-11-30T11:00:28.000Z',
quote:[
{
USD:
{
price: 4071.55349237,
volume_24h: 5966638087.9657,
percent_change_1h: -3.18515,
percent_change_24h: -6.66359,
percent_change_7d: -5.74611,
market_cap: 70846354022.12302,
last_updated: '2018-11-30T11:03:22.000Z'
}
}
],
},
{
id:2,
name:'Litecoin',
symbol:'LTC',
slug:'litecoin',
circulating_supply:17400325,
total_supply:17400325,
max_supply:21000000,
date_added:'2013-04-28T00:00:00.000Z',
num_market_pairs:6618,
cmc_rank:1,
last_updated:'2018-11-30T11:00:28.000Z',
quote:[
{
USD:
{
price: 221.55349237,
volume_24h: 5966638087.9657,
percent_change_1h: -3.18515,
percent_change_24h: -6.66359,
percent_change_7d: -5.74611,
market_cap: 70846354022.12302,
last_updated: '2018-11-30T11:03:22.000Z'
}
}
]
}]
}
const res = req.data.map(x => ({
name: x.name,
id: x.id,
symbol: x.symbol,
price: x.quote[0].USD.price,
}))
console.log(res)
推荐阅读
- regex - eval base64 病毒 - nginx 正则表达式预防
- java - Spring Data Reactive Mongo:类类型转换器
- c - stackframe 不会从堆栈中消除?
- javascript - Three.js 将名称打印为带点的文本
- c# - 定义 web api 方法的区别 - 新手
- php - php使用下拉列表显示来自mysql的用户数据
- xlwings - xlwings 找不到我的文件?
- ruby - open-uri加载一个url后,生成的Tempfile对象如何处理?
- python - 使用正则表达式从其他两个字符之间的字符串中删除字符 '。
- android - 部署 Xamarin Forms Android 应用程序时内存不足