Flutter에서 JSON 데이터를 파싱하는 방법은 무엇인가요?
Flutter에서 JSON 데이터를 파싱하는 것은 RESTful API와 통신하거나 로컬 JSON 파일을 사용할 때 매우 일반적인 작업입니다. JSON(JavaScript Object Notation)은 데이터를 구조화하는 데 널리 사용되는 형식으로, Flutter에서는 이를 쉽게 처리할 수 있는 여러 방법이 있습니다. 아래에서는 Flutter에서 JSON 데이터를 파싱하는 방법을 단계별로 설명하겠습니다. 1. JSON 데이터 준비 먼저, JSON 데이터를 준비해야 합니다. 예를 들어, 다음과 같은 JSON 데이터를 사용할 수 있습니다. ```json { "id": 1, "name": "John Doe", "email": "[email protected]" } ``` 2. 모델 클래스 생성 JSON 데이터를 파싱하기 위해서는 먼저 해당 데이터를 표현할 모델 클래스를 생성해야 합니다. 위의 JSON 데이터를 기반으로 `User`라는 모델 클래스를 만들어 보겠습니다. ```dart class User { final int id; final String name; final String email; User({required this.id, required this.name, required this.email}); // JSON 데이터를 User 객체로 변환하는 팩토리 메서드 factory User.
fromJson(Map json) { return User( id: json['id'], name: json['name'], email: json['email'], ); } // User 객체를 JSON 데이터로 변환하는 메서드 Map toJson() { return { 'id': id, 'name': name, 'email': email, }; } } ``` 3. JSON 데이터 파싱 이제 JSON 데이터를 `User` 객체로 변환하는 방법을 살펴보겠습니다. JSON 데이터를 문자열로 받아온 후, `dart:convert` 패키지를 사용하여 파싱할 수 있습니다. ```dart import 'dart:convert'; void main() { // JSON 문자열 String jsonString = '{"id": 1, "name": "John Doe", "email": "[email protected]"}'; // JSON 문자열을 Map으로 변환 Map userMap = jsonDecode(jsonString); // Map을 User 객체로 변환 User user = User.fromJson(userMap); // 결과 출력 print('ID: ${user.id}, Name: ${user.name}, Email: ${user.
email}'); } ``` 4. API에서 JSON 데이터 가져오기 실제 애플리케이션에서는 API를 통해 JSON 데이터를 가져오는 경우가 많습니다. `http` 패키지를 사용하여 API에서 데이터를 가져오는 방법을 살펴보겠습니다. 4.1. `http` 패키지 추가 `pubspec.yaml` 파일에 `http` 패키지를 추가합니다. ```yaml dependencies: http: ^0.13.3 ``` 4.2. API 호출 및 JSON 파싱 다음은 API에서 JSON 데이터를 가져와서 파싱하는 예제입니다. ```dart import 'dart:convert'; import 'package:http/http.dart' as http; Future fetchUser() async { final response = await http.get(Uri.parse('https://api.example.com/user/1')); if (response.statusCode == 200) { // JSON 데이터를 User 객체로 변환 return User.fromJson(jsonDecode(response.body)); } else { throw Exception('Failed to load user'); } } void main() async { try { User user = await fetchUser(); print('ID: ${user.
id}, Name: ${user.name}, Email: ${user.email}'); } catch (e) { print(e); } } ``` 5. JSON 데이터 리스트 파싱 JSON 데이터가 리스트 형태일 경우, 여러 객체를 파싱하는 방법도 알아보겠습니다. 예를 들어, 다음과 같은 JSON 배열이 있다고 가정합니다. ```json [ {"id": 1, "name": "John Doe", "email": "[email protected]"}, {"id": 2, "name": "Jane Doe", "email": "[email protected]"} ] ``` 이 경우, `User` 객체의 리스트를 반환하는 메서드를 추가할 수 있습니다. ```dart List parseUsers(String responseBody) { final parsed = jsonDecode(responseBody).cast
작성자:
박현서 [비회원]
| 작성일자: 2개월 전
2024-09-19 01:51:18
조회수: 56 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 56 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
추가 게시글
Flutter에서 `Rotatio...
2개월 전 | 최민혁
조회수: 17 | 댓글: 0 | 좋아요: 0
Flutter에서 `SingleC...
2개월 전 | 박서윤
조회수: 53 | 댓글: 0 | 좋아요: 0
새로운 게시글
NVMe (Non-Volatile M...
1주 전 | 이지용
조회수: 9 | 댓글: 0 | 좋아요: 0