[flutter] DataTable에서 데이터를 JSON 파일로 내보내는 방법

이번 포스트에서는 Flutter 앱에서 데이터테이블에 표시된 정보를 JSON 파일로 내보내는 방법을 알아보겠습니다.

단계 1: 필요한 패키지 추가

우선, path_provider 패키지를 사용하여 파일 시스템에 액세스하는 기능을 추가합니다.

dependencies:
  path_provider: ^2.0.5

단계 2: 데이터테이블과 데이터 생성

데이터테이블을 생성하고 데이터를 준비합니다.

import 'package:flutter/material.dart';
import 'dart:convert';
import 'dart:io';
import 'package:path_provider/path_provider.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MyDataTable(),
    );
  }
}

class MyDataTable extends StatefulWidget {
  @override
  _MyDataTableState createState() => _MyDataTableState();
}

class _MyDataTableState extends State<MyDataTable> {
  List<Map<String, dynamic>> _dataList = [
    {'id': 1, 'name': 'John', 'age': 25},
    {'id': 2, 'name': 'Alice', 'age': 30},
    {'id': 3, 'name': 'Bob', 'age': 28},
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Data Table'),
      ),
      body: SingleChildScrollView(
        scrollDirection: Axis.vertical,
        child: DataTable(
          columns: <DataColumn>[
            DataColumn(label: Text('ID')),
            DataColumn(label: Text('Name')),
            DataColumn(label: Text('Age')),
          ],
          rows: _dataList
              .map((data) => DataRow(cells: [
                    DataCell(Text(data['id'].toString())),
                    DataCell(Text(data['name'])),
                    DataCell(Text(data['age'].toString())),
                  ]))
              .toList(),
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _exportDataToJSON,
        child: Icon(Icons.file_download),
      ),
    );
  }

  _exportDataToJSON() async {
    final directory = await getApplicationDocumentsDirectory();
    final file = File('${directory.path}/data.json');
    await file.writeAsString(json.encode(_dataList));
    // 저장된 경로 출력
    debugPrint('JSON 파일이 생성되었습니다: ${file.path}');
  }
}

단계 3: 데이터를 JSON 파일로 내보내기

위의 코드에서는 _exportDataToJSON 메서드를 사용하여 데이터를 JSON 파일로 내보내는 작업을 수행합니다. 이 메서드는 path_provider 패키지를 사용하여 애플리케이션의 문서 디렉토리에 data.json 파일을 저장합니다.

결론

이제 데이터테이블에서 JSON 파일로 데이터를 내보내는 방법을 확인했습니다. Flutter에서는 path_provider 패키지를 사용하여 파일 시스템에 액세스하고, dart:convert 패키지를 사용하여 데이터를 JSON 형식으로 변환할 수 있습니다.

참고 문서: