반응형
JSON 형식에 문자열 데이터를 dart 코드로 변환 처리
JSON 문자열을 Dart 객체로 변환하는 과정을 "JSON 파싱"이라고 합니다.
JSON 파싱은 일반적으로 JSON 형식의 문자열 데이터를 특정 프로그래밍 언어의 데이터 구조나 객체로 변환하는 작업을 의미합니다.
Dart 객체로 변환하기 위해 우리는 dart:convert 라이브러리의 json.decode() 메서드를 사용
import 'dart:convert';
void main() {
// 1단계 - 통신을 x 직접 json 형식의 데이터를 만들어 보자
String jsonStr = '''
{
"userId": 1,
"id": 100,
"title": "json 파싱이란?",
"completed": false
}
''';
// 위 코드는 단지 형식이 있는 문자열입니다 (json)
// 1단계 - 라이브러리가 필요 하다.
// JSON 문자열을 파싱하여 먼저 Map 객체로 변환을 해야 한다.
Map<String, dynamic> jsonStrToMap = json.decode(jsonStr); // Map 구조로 변환 해줌
print(jsonStrToMap.runtimeType);
print(jsonStrToMap);
// Map --> 반복문 활용을 많이 한다.
jsonStrToMap.forEach((key, value) {
print("key - ${key}" );
print("key - ${value}" );
print("---------------------");
});
}
class Todo {
int userId;
int id;
String title;
bool completed;
// 기본 생성자 1
// 강제성 - 생성자
Todo(this.userId, this.id, this.title, this.completed);
// 명명된 생성자 2 - Map를 넣으면 Todo 오브젝트가 반환 되는 코드를 작성
// 이니셜 라이져 (변수를 초기화 해주는 문법)
Todo.fromJson(Map<String, dynamic> json)
: userId = json["userIkd"],
id = json["id"],
title = json["title"],
completed = json["completed"];
@override
String toString() {
return '내가 보는 - Todo{userId: $userId, id: $id, title: $title, completed: $completed}';
}
}
실행결과
C:/devtool/flutter/bin/cache/dart-sdk/bin/dart.exe --enable-asserts C:\devtool\class_flutter\dart_future_v1\lib\main8.dart
_Map<String, dynamic>
{userId: 1, id: 100, title: json 파싱이란?, completed: false}
key - userId
value - 1
-------------------
key - id
value - 100
-------------------
key - title
value - json 파싱이란?
-------------------
key - completed
value - false
-------------------
내가 보는 - Todo{userId: 1, id: 100, title: json 파싱이란?, completed: false}
json 파싱이란?
Process finished with exit code 0
반응형
'Flutter' 카테고리의 다른 글
TodoList App 만들기 (0) | 2024.03.21 |
---|---|
Flutter MVVM 패턴 - 1 (0) | 2024.03.19 |
dart 비동기 프로그래밍 - 3 (0) | 2024.03.15 |
dart 비동기 프로그래밍 -1 (0) | 2024.03.14 |
블로그 웹 앱 만들어보기 (0) | 2023.12.15 |