如何循环遍历包含对象和数组的 JSON 对象

Posted

技术标签:

【中文标题】如何循环遍历包含对象和数组的 JSON 对象【英文标题】:How to Loop through JSON Objects having Objects and Arrays Inside 【发布时间】:2022-01-14 07:24:10 【问题描述】:

let mything = 
  "holders": [
    "address": "0xbe0eb53f46cd790cd13851d5eff43d12404d33e8",
    "balance": 8.623839536582375e24,
    "share": 52.02
  , 
    "address": "0xf977814e90da44bfa03b6295a0616a897441acec",
    "balance": 4.5e24,
    "share": 27.14
  ]
;

let m = Object.entries(mything);
console.log(m);

上面是一个 json 数据,存储在一个文件中,现在我要做的是遍历这个包含 2000 个此类条目的整个文件,只获取每个条目的地址部分并将其附加到一个 url 中,那么我将如何做循环部分? javascript 的任何代码片段都会很可爱。 赞一个。

【问题讨论】:

请添加您尝试过的代码以及您对它的具体挑战 谢谢马克,伸出援手,我的挑战是获取地址值并进一步使用它,我正在尝试类似 Object.entries() 方法,之后我真的不知道该怎么做. 【参考方案1】:

您可以使用map 函数来获得一个衬里:

const data = "holders": [
  "address": "0xbe0eb53f46cd790cd13851d5eff43d12404d33e8",
  "balance": 8.623839536582375e24,
  "share": 52.02
,
  "address": "0xf977814e90da44bfa03b6295a0616a897441acec",
  "balance": 4.5e24,
  "share": 27.14
];

const url = "https://my.url/";
const urls = data.holders.map(holder => `$url$holder.address`);

console.log(urls);

【讨论】:

【参考方案2】:

由于holders 对象是一个数组,您可以像下面那样循环它,并使用该地址,如根据您在循环内的逻辑构造 URL。这是将地址存储在数组中的示例:

var original = 
  "holders": [
    "address": "0xbe0eb53f46cd790cd13851d5eff43d12404d33e8",
    "balance": 8.623839536582375e24,
    "share": 52.02
  , 
    "address": "0xf977814e90da44bfa03b6295a0616a897441acec",
    "balance": 4.5e24,
    "share": 27.14
  ]
;

var addresses = [];
for (let holder of original.holders) 
  addresses.push(holder.address);

console.log(addresses)

【讨论】:

【参考方案3】:
const data = "holders": [
  "address": "0xbe0eb53f46cd790cd13851d5eff43d12404d33e8",
  "balance": 8.623839536582375e24,
  "share": 52.02
,
  "address": "0xf977814e90da44bfa03b6295a0616a897441acec",
  "balance": 4.5e24,
  "share": 27.14
];

for(const obj of Object.values(data)) 
    for(const arr of obj) 
        // Your code
    

【讨论】:

【参考方案4】:

使用Array.prototype.map

const holders = [
    "address": "0xbe0eb53f46cd790cd13851d5eff43d12404d33e8",
    "balance": 8.623839536582375e24,
    "share": 52.02
, 
    "address": "0xf977814e90da44bfa03b6295a0616a897441acec",
    "balance": 4.5e24,
    "share": 27.14
];

const addresses = holders.map((holder) => holder.address);

console.log(addresses);

【讨论】:

以上是关于如何循环遍历包含对象和数组的 JSON 对象的主要内容,如果未能解决你的问题,请参考以下文章

js的Dom对象集合循环遍历过程中数组长度发生变化,小白不懂,求大神指教

json数组存储了两个对象,要怎么遍历

如何遍历一个对象数组并创建一个 json 对象?

Snowflake SQL:如何使用 JSON 对象循环遍历数组,以查找符合条件的项目

python中如何遍历json数组

循环遍历数组中的对象,显示来自 JSON 的数据