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

如何在Node.js中重组JSON数组为指定层级结构?

解决方案:重组JSON结构并转换为XML

核心思路

先把数组形式的JSON包装成包含root节点的结构,再通过XML转换工具生成目标格式。以下是具体实现步骤:


1. 重组JSON结构

假设你的原始JSON数组为originalJsonArray,直接将其嵌套到root节点下的item数组中即可:

// 示例原始JSON数组
const originalJsonArray = [
  { id: 1, name: "商品A", price: 99 },
  { id: 2, name: "商品B", price: 199 }
];

// 重组为符合XML需求的结构
const restructuredJson = {
  root: {
    item: originalJsonArray
  }
};

这个结构会被XML工具解析为标准层级:

1 商品A 99 2 商品B 199

2. 整合完整流程(下载→CSV→JSON→重组→XML)

用常用Node.js库实现全流程,先安装依赖:

npm install axios csv-parser json2xml

完整代码示例:

const axios = require('axios');
const csv = require('csv-parser');
const fs = require('fs');
const json2xml = require('json2xml');

async function processTxtToXml() {
  try {
    // 下载目标txt文件(假设文件内容为CSV格式)
    const stream = await axios.get('https://你的文件地址/target.txt', { responseType: 'stream' });

    // 解析CSV为JSON数组
    const jsonArray = [];
    stream.data
      .pipe(csv({ separator: ',' })) // 根据实际分隔符调整,比如'\t'对应制表符分隔
      .on('data', (row) => jsonArray.push(row))
      .on('end', () => {
        // 重组JSON结构
        const structuredData = { root: { item: jsonArray } };

        // 转换为XML,自动添加XML声明头
        const xmlContent = json2xml(structuredData, { header: true });

        // 保存最终XML文件
        fs.writeFileSync('output.xml', xmlContent);
        console.log('XML转换完成,文件已保存');
      });
  } catch (err) {
    console.error('流程执行失败:', err.message);
  }
}

// 启动处理流程
processTxtToXml();

注意事项

  • 如果txt文件不是标准CSV格式,需调整csv-parser的配置参数(如separator、quote),保证解析出正确的JSON数组
  • 若使用其他XML转换库(如xml2js),只需替换转换逻辑,重组后的JSON结构完全通用
  • 若原始数组元素是字符串、数字这类基本类型,转换后的XML会自动生成<item>具体值</item>的节点形式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 10:20:32