You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何遍历含多个JSON字符串的数组提取指定字段值

实现方法

你只需要把单条JSON的处理逻辑放到数组遍历的回调里即可,不需要修改原有取值逻辑,这里提供两种常用实现:

方式1:直接遍历输出(匹配你的打印需求)

用forEach遍历数组每一项,执行和单条处理完全一致的解析、取值、打印逻辑:

const leo = [
  '{"contractName":"tokens","contractAction":"stake","contractPayload":{"to":"hivebuilder","symbol":"LEO","quantity":"0.161"}}',
  '{"contractName":"tokens","contractAction":"stake","contractPayload":{"to":"pele23","symbol":"LEO","quantity":"1.031"}}',
];

leo.forEach((jsonString) => {
  const obj = JSON.parse(jsonString);
  console.log(obj.contractPayload.to, obj.contractPayload.quantity);
});

运行后输出和你预期完全一致:

hivebuilder 0.161
pele23 1.031

方式2:先提取结果存储,再按需使用

如果你需要把提取到的字段存下来后续做其他处理,而不是直接打印,可以用map生成结果数组:

const leo = [
  '{"contractName":"tokens","contractAction":"stake","contractPayload":{"to":"hivebuilder","symbol":"LEO","quantity":"0.161"}}',
  '{"contractName":"tokens","contractAction":"stake","contractPayload":{"to":"pele23","symbol":"LEO","quantity":"1.031"}}',
];

// 提取所有目标字段,存为结构化数组
const extractedResult = leo.map((jsonString) => {
  const obj = JSON.parse(jsonString);
  return {
    to: obj.contractPayload.to,
    quantity: obj.contractPayload.quantity
  };
});

// 需要输出时遍历打印即可
extractedResult.forEach(item => {
  console.log(item.to, item.quantity);
});

鲁棒性优化(可选)

如果你的数百条数据里可能存在格式错误的JSON、或者缺目标字段的异常数据,可以加错误捕获避免程序中断:

leo.forEach((jsonString) => {
  try {
    const obj = JSON.parse(jsonString);
    // 校验字段存在再打印
    if (obj?.contractPayload?.to && obj?.contractPayload?.quantity) {
      console.log(obj.contractPayload.to, obj.contractPayload.quantity);
    } else {
      console.log('当前条目缺少目标字段:', jsonString);
    }
  } catch (e) {
    console.log('JSON解析失败,非法格式:', jsonString);
  }
});

内容的提问来源于stack exchange,提问作者Eric FNa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 05:33:16