이번에는 Dart에서 JSON 데이터를 처리하는 방법을 설명합니다. JSON 데이터의 인코딩(객체를 JSON 문자열로 변환)과 디코딩(JSON 문자열을 객체로 변환) 과정을 Dart 프로그래밍 구현 방법에 대해 정리하고, JSON 배열과 중첩된 JSON 객체를 파싱 하는 방법에 대한 예제를 통해 설명하여 Dart 프로그래밍 입문자들도 JSON 데이터를 효과적으로 다룰 수 있을 만큼 이해할 수 있도록 설명해 보도록 하겠습니다.
Dart JSON 데이터 처리
JSON (JavaScript Object Notation)은 데이터를 저장하고 전송하기 위한 경량 형식입니다. 사람과 기계가 모두 읽기 쉽게 설계되어 있어 웹 애플리케이션에서 데이터를 교환하는 데 자주 사용됩니다. JSON은 기본적으로 키-값 쌍으로 구성된 데이터 구조입니다.
Dart에서 JSON 데이터 처리
Dart에서 JSON 데이터를 처리하기 위해서는 dart:convert
라이브러리를 사용합니다. 이 라이브러리는 JSON 데이터의 인코딩(객체를 JSON 문자열로 변환)과 디코딩(JSON 문자열을 객체로 변환)을 도와줍니다.
Dart JSON 데이터 파싱
JSON 데이터를 Dart 객체로 변환하는 과정을 파싱이라고 합니다. 예를 들어, JSON 문자열을 Dart의 Map
객체로 변환할 수 있습니다.
다음은 JSON 문자열을 Dart 객체로 파싱하는 예제입니다.
import 'dart:convert';
void main() {
String jsonString = '{"name": "John", "age": 30, "city": "New York"}';
Map<String, dynamic> user = jsonDecode(jsonString);
print('이름: ${user['name']}');
print('나이: ${user['age']}');
print('도시: ${user['city']}');
}
위 코드에서 jsonDecode
함수는 JSON 문자열을 받아 Dart의 Map
객체로 변환합니다. Map
객체는 키-값 쌍으로 구성된 데이터 구조입니다.
Dart JSON 데이터 직렬화
Dart 객체를 JSON 문자열로 변환하는 과정을 직렬화라고 합니다. 예를 들어, `Map` 객체를 JSON 문자열로 변환할 수 있습니다.
다음은 Dart 객체를 JSON 문자열로 직렬화하는 예제입니다.
import 'dart:convert';
void main() {
Map<String, dynamic> user = {
'name': 'John',
'age': 30,
'city': 'New York'
};
String jsonString = jsonEncode(user);
print(jsonString);
}
위 코드에서 jsonEncode
함수는 Dart의 Map
객체를 받아 JSON 문자열로 변환합니다.
예제 코드와 자세한 설명
예제 1: JSON 배열 파싱
JSON 배열은 여러 개의 JSON 객체를 포함할 수 있습니다. 다음은 JSON 배열을 파싱 하는 예제입니다.
import 'dart:convert';
void main() {
String jsonArrayString = '''
[
{"name": "John", "age": 30, "city": "New York"},
{"name": "Doe", "age": 25, "city": "Los Angeles"}
]
''';
List<dynamic> users = jsonDecode(jsonArrayString);
for (var user in users) {
print('이름: ${user['name']}');
print('나이: ${user['age']}');
print('도시: ${user['city']}');
}
}
이 예제에서 jsonDecode
함수는 JSON 배열 문자열을 Dart의 List
객체로 변환합니다. 각 List
항목은 Map
객체로 변환됩니다.
예제 2: 중첩된 JSON 객체 파싱
JSON 데이터는 중첩된 객체를 포함할 수 있습니다. 다음은 중첩된 JSON 객체를 파싱하는 예제입니다.
import 'dart:convert';
void main() {
String jsonString = '''
{
"name": "John",
"age": 30,
"address": {
"street": "5th Avenue",
"city": "New York"
}
}
''';
Map<String, dynamic> user = jsonDecode(jsonString);
Map<String, dynamic> address = user['address'];
print('이름: ${user['name']}');
print('나이: ${user['age']}');
print('거리: ${address['street']}');
print('도시: ${address['city']}');
}
이 예제에서 address
키의 값은 또 다른 Map
객체로 변환됩니다.
'프로그래밍 언어 > Dart' 카테고리의 다른 글
Dart 파일 입출력. 예제로 배우는 Dart 텍스트 및 바이너리 파일 읽기와 쓰기 - Dart 기초 #22 (0) | 2024.06.28 |
---|---|
Dart 패키지 사용법. http 패키지 예제와 함께 배우기 - Dart 기초 #21 (0) | 2024.06.27 |
Dart 입문자를 위한 라이브러리 활용법. 프로그래밍과 파일 입출력 예시 코드 - Dart 기초 #20 (0) | 2024.06.26 |
Dart 예외 처리 try-catch 구문. 사용자 정의 예외와 finally 블록 사용하기 - Dart 기초 #19 (0) | 2024.06.25 |
Dart Stream 사용법 및 예제 통한 비동기 처리와 필터링 프로그래밍 - Dart 기초 #18 (0) | 2024.06.24 |