JSON 数据转换:CSV、XML、YAML 互转指南

详细介绍 JSON 与 CSV、XML、YAML 等格式的互转方法。包含在线工具和代码实现。

JSON 工具 2026-05-29 8 分钟

JSON 数据转换:CSV、XML、YAML 互转指南

在实际开发中,经常需要在不同数据格式之间转换。本文介绍 JSON 与 CSV、XML、YAML 等格式的互转方法。

JSON 转 CSV

适用场景

  • 数据分析(Excel、Pandas)
  • 数据导入导出
  • 批量数据处理

JavaScript 实现

function jsonToCSV(json) {
  const headers = Object.keys(json[0]);
  const rows = json.map(obj => 
    headers.map(h => JSON.stringify(obj[h] || '')).join(',')
  );
  return [headers.join(','), ...rows].join('\n');
}

Python 实现

import json
import csv

with open('data.json', 'r') as f:
    data = json.load(f)

with open('data.csv', 'w', newline='') as f:
    writer = csv.DictWriter(f, fieldnames=data[0].keys())
    writer.writeheader()
    writer.writerows(data)

注意事项

  • 嵌套 JSON 需要展平
  • 数组字段需要特殊处理
  • 特殊字符需要转义

JSON 转 XML

JavaScript 实现

function jsonToXML(json, rootName = 'root') {
  let xml = `<?xml version="1.0" encoding="UTF-8"?>\n<${rootName}>`;
  
  function parse(obj) {
    for (const [key, value] of Object.entries(obj)) {
      if (typeof value === 'object' && value !== null) {
        xml += `<${key}>${parse(value)}</${key}>`;
      } else {
        xml += `<${key}>${value}</${key}>`;
      }
    }
  }
  
  parse(json);
  xml += `</${rootName}>`;
  return xml;
}

Java 实现(Jackson XML)

XmlMapper xmlMapper = new XmlMapper();
String xml = xmlMapper.writeValueAsString(jsonObject);

JSON 转 YAML

JavaScript 实现

const yaml = require('js-yaml');

// JSON 转 YAML
const yamlStr = yaml.dump(jsonObject);

// YAML 转 JSON
const jsonObj = yaml.load(yamlStr);

Python 实现

import json
import yaml

# JSON 转 YAML
with open('data.json', 'r') as f:
    data = json.load(f)

with open('data.yaml', 'w') as f:
    yaml.dump(data, f, allow_unicode=True)

CSV 转 JSON

function csvToJSON(csv) {
  const lines = csv.split('\n');
  const headers = lines[0].split(',');
  
  return lines.slice(1).map(line => {
    const values = line.split(',');
    return headers.reduce((obj, header, i) => {
      obj[header] = values[i];
      return obj;
    }, {});
  });
}

格式选择指南

格式 适用场景 优势 劣势
JSON API、配置 类型丰富、JavaScript 原生 不支持注释
CSV 数据分析 简单、Excel 支持 不支持嵌套
XML 企业服务 强表达能力、命名空间 冗余、解析慢
YAML 配置文件 可读性好、支持注释 缩进敏感

在线工具推荐

jsjson.com 提供 JSON 格式化、压缩、校验等功能,支持在线操作,数据本地处理更安全。

总结

选择数据格式时,根据具体场景决定:API 用 JSON,数据分析用 CSV,企业服务用 XML,配置文件用 YAML。

📚 相关文章