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

如何使用原生JavaScript遍历JSON字符串提取指定字段并展示

原生JS实现方案

你提供的原始JSON字符串缺少数组外层的[]包裹,不属于合法JSON格式,先做格式兼容修正后,解析为JS数组遍历提取指定字段即可,不需要引入任何第三方库。

完整可运行代码

<!-- 页面展示容器 -->
<div id="resultBox"></div>

<script>
// 你的原始JSON字符串
const rawStr = `{"index_name":"grafana1","begin":"1970-01-01T00:00:00.000Z","end":"1970-01-01T00:00:00.000Z","calculated_at":"2022-06-01T00:00:04.099Z","took_ms":0},{"index_name":"grafana2","begin":"1970-01-01T00:00:00.000Z","end":"1970-01-01T00:00:00.000Z","calculated_at":"2022-06-02T00:00:05.099Z","took_ms":0}`;

// 兼容处理:自动补全数组外层括号,适配你给出的非标准格式
let validJson = rawStr.trim();
if (!validJson.startsWith('[')) {
  validJson = `[${validJson}]`;
}

// 解析为JS对象数组
const dataList = JSON.parse(validJson);

// 拼接展示内容
let outputText = '';
dataList.forEach(item => {
  // 每个条目只取需要的两个字段,按要求换行,条目之间空一行
  outputText += `${item.index_name}\n${item.calculated_at}\n\n`;
})

// 渲染到页面,pre标签可以直接保留文本换行格式
document.getElementById('resultBox').innerHTML = `<pre>${outputText.trim()}</pre>`;
</script>

实现说明

  • 遍历采用forEach方法,不会修改原始数据,仅提取index_name和calculated_at两个字段
  • 用<pre>标签渲染内容,无需手动拼接<br>标签即可保留换行格式,最终展示效果和你要求的完全一致:
grafana1
2022-06-01T00:00:04.099Z

grafana2
2022-06-02T00:00:05.099Z
  • 如果后续接口返回的是标准带[]的JSON数组,兼容逻辑不会产生负面影响,可以直接保留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 12:42:26