Flutter JSON转CSV插件json2csv_dart的使用

Flutter JSON转CSV插件json2csv_dart的使用

pub package

这是一个帮助你将JSON列表转换为CSV格式字符串的库。

开始使用

1. 安装json2csv_dart包到你的项目
dart pub add dev:json2csv_dart
2. 导入json2csv_dart包到你的项目
import 'package:json2csv_dart/json2csv_dart.dart';
3. 使用json2csv_dart
// 调用API或从文件获取JSON数据。

final List<Map<String, dynamic>> data = [
  {
    "id": 1,
    "name": "Leanne Graham",
    "username": "Bret",
    "email": "Sincere@april.biz",
    "address": {
      "street": "Kulas Light",
      "suite": "Apt. 556",
      "city": "Gwenborough",
      "zipcode": "92998-3874",
      "geo": {"lat": "-37.3159", "lng": "81.1496"}
    },
    "phone": "1-770-736-8031 x56442",
    "website": "hildegard.org",
    "company": {"name": "Romaguera-Crona", "catchPhrase": "Multi-layered client-server neural-net", "bs": "harness real-time e-markets"}
  },
  // 更多数据项...
];

final csv = const CSVConvertor().convert(data);

// 对输出进行操作。

示例代码

import 'dart:typed_data';

import 'package:file_saver/file_saver.dart';
import 'package:flutter/material.dart';
import 'package:json2csv_dart/json2csv_dart.dart';

void main() async {
  // 调用API或从文件获取JSON数据。

  final List<Map<String, dynamic>> data = [
    {
      "id": 1,
      "name": "Leanne Graham",
      "username": "Bret",
      "email": "Sincere@april.biz",
      "address": {
        "street": "Kulas Light",
        "suite": "Apt. 556",
        "city": "Gwenborough",
        "zipcode": "92998-3874",
        "geo": {"lat": "-37.3159", "lng": "81.1496"}
      },
      "phone": "1-770-736-8031 x56442",
      "website": "hildegard.org",
      "company": {"name": "Romaguera-Crona", "catchPhrase": "Multi-layered client-server neural-net", "bs": "harness real-time e-markets"}
    },
    {
      "id": 2,
      "name": "Ervin Howell",
      "username": "Antonette",
      "email": "Shanna@melissa.tv",
      "address": {
        "street": "Victor Plains",
        "suite": "Suite 879",
        "city": "Wisokyburgh",
        "zipcode": "90566-7771",
        "geo": {"lat": "-43.9509", "lng": "-34.4618"}
      },
      "phone": "010-692-6593 x09125",
      "website": "anastasia.net",
      "company": {"name": "Deckow-Crist", "catchPhrase": "Proactive didactic contingency", "bs": "synergize scalable supply-chains"}
    },
    // 更多数据项...
  ];

  final csv = const CSVConvertor().convert(data);

  final bytes = Uint8List.fromList(csv.codeUnits);

  await FileSaver.instance.saveFile(
    name: "Report",
    bytes: bytes,
    ext: "csv",
    mimeType: MimeType.csv,
  );

  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  [@override](/user/override)
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: Scaffold(),
    );
  }
}

更多关于Flutter JSON转CSV插件json2csv_dart的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter JSON转CSV插件json2csv_dart的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


json2csv_dart 是一个用于将 JSON 数据转换为 CSV 格式的 Dart/Flutter 插件。它允许你在 Flutter 应用中轻松地将 JSON 数据导出为 CSV 文件。下面是如何使用 json2csv_dart 插件的基本步骤。

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 json2csv_dart 依赖:

dependencies:
  json2csv_dart: ^1.0.0

然后运行 flutter pub get 来安装依赖。

2. 导入包

在需要使用的地方导入 json2csv_dart 包:

import 'package:json2csv_dart/json2csv_dart.dart';

3. 准备 JSON 数据

假设你有以下的 JSON 数据:

List<Map<String, dynamic>> jsonData = [
  {"name": "John", "age": 30, "city": "New York"},
  {"name": "Anna", "age": 22, "city": "London"},
  {"name": "Mike", "age": 32, "city": "San Francisco"},
];

4. 转换为 CSV

使用 Json2Csv 类将 JSON 数据转换为 CSV 字符串:

String csv = Json2Csv().convert(jsonData);
print(csv);

5. 保存为 CSV 文件

如果你想将生成的 CSV 字符串保存为文件,可以使用 dart:io 库。以下是一个示例:

import 'dart:io';

void saveCsvFile(String csv) async {
  final String path = '${Directory.systemTemp.path}/data.csv';
  final File file = File(path);
  await file.writeAsString(csv);
  print("CSV file saved at $path");
}

void main() {
  List<Map<String, dynamic>> jsonData = [
    {"name": "John", "age": 30, "city": "New York"},
    {"name": "Anna", "age": 22, "city": "London"},
    {"name": "Mike", "age": 32, "city": "San Francisco"},
  ];

  String csv = Json2Csv().convert(jsonData);
  saveCsvFile(csv);
}

6. 处理复杂 JSON 数据

如果你的 JSON 数据结构较为复杂(例如嵌套的 JSON),json2csv_dart 也支持处理嵌套数据。你可以通过设置 includeHeadersincludeIndices 参数来控制生成 CSV 的格式。

String csv = Json2Csv(includeHeaders: true, includeIndices: true).convert(jsonData);

7. 自定义 CSV 格式

你可以通过设置 delimiter 参数来自定义 CSV 的分隔符:

String csv = Json2Csv(delimiter: ';').convert(jsonData);

8. 处理空值

你可以通过设置 replaceNullWith 参数来处理 JSON 中的空值:

String csv = Json2Csv(replaceNullWith: "N/A").convert(jsonData);
回到顶部