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

如何使用Node.js从JSON中提取多级子对象并获取指定p标签内容

解决方案

先执行以下代码确认Texte_Integral字段的结构和类型:

'use strict';
const fs = require('fs');

var data = JSON.parse(fs.readFileSync('./me.json'));

data.Document.Decision.forEach(x => {
 // 新增打印确认结构
 console.log('Texte_Integral类型:', typeof x.Texte_Integral, '值:', x.Texte_Integral);
 console.log(x.Texte_Integral.p);
});

根据输出结果对应处理:

场景1:Texte_Integral为字符串类型(最常见场景)

说明该字段存储的是完整HTML文本,p是HTML标签而非JSON属性,无法直接通过点语法取值。

处理方法1:正则匹配提取

适合结构简单的HTML:

data.Document.Decision.forEach(x => {
  const htmlStr = x?.Texte_Integral || '';
  const pMatch = htmlStr.matchAll(/<p>(.*?)<\/p>/g);
  for (const match of pMatch) {
    console.log(match[1].trim());
  }
});

处理方法2:cheerio库解析

适合结构复杂的HTML,稳定性更高:

  1. 安装依赖
    npm install cheerio
  2. 完整代码
'use strict';
const fs = require('fs');
const cheerio = require('cheerio');

var data = JSON.parse(fs.readFileSync('./me.json'));

data.Document.Decision.forEach(x => {
  const htmlStr = x?.Texte_Integral || '';
  const $ = cheerio.load(htmlStr);
  $('p').each((index, element) => {
    console.log($(element).text().trim());
  });
});

场景2:Texte_Integral为对象类型

说明是JSON嵌套结构,可排查以下问题:

  • 确认p键名拼写是否正确,是否存在大小写、特殊字符差异
  • 确认p是否为数组类型,若是需遍历访问:
data.Document.Decision.forEach(x => {
  const pContent = x?.Texte_Integral?.p;
  if(Array.isArray(pContent)) {
    pContent.forEach(item => console.log(item));
  } else {
    console.log(pContent);
  }
});

内容的提问来源于stack exchange,提问作者Adnan Ali Khan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 02:15:05