<Flutter> api 에서 응답받은 xml 을 json으로 변환
- Developer/Flutter
- 2023. 7. 26.
제목: Flutter에서 API로 받은 XML을 JSON으로 변환하고 저장하는 방법
안녕하세요! 오늘의 블로그 글에서는 Flutter 앱에서 API에 호출을 통해 XML 응답을 받고, 해당 응답을 JSON으로 변환하여 저장하는 방법에 대해 자세하게 설명하겠습니다. 이 방법을 통해 웹 API에서 XML 데이터를 쉽게 변환하고 사용할 수 있습니다.
먼저 사용할 라이브러리를 설치해야 합니다.
1. 패키지 설치
라이브러리 설치는 다음 단계로 진행합니다.
먼저 http
, xml2json
, 그리고 필요한 경우 shared_preferences
(데이터 저장을 위한 간편한 방법) 패키지를 프로젝트에 설치하세요. pubspec.yaml
파일에서 다음과 같이 의존성을 추가합니다.
dependencies:
flutter:
sdk: flutter
http: ^0.13.3
xml2json: ^6.0.0
shared_preferences: ^2.0.8
2. 라이브러리 import
이제 http
, xml2json
, 및 shared_preferences
라이브러리를 사용할 파일에 import 해주세요.
import 'dart:convert';
import 'package:http/http.dart' as http;
import 'package:xml2json/xml2json.dart';
import 'package:shared_preferences/shared_preferences.dart';
3. API 호출 및 데이터 변환
다음으로, http 패키지를 사용해 API를 호출하고, 받은 XML 응답을 JSON으로 변환하는 코드를 작성합니다.
Future> fetchXmlData() async {
try {
// 원하는 API URL로 요청
String url = "https://example.com/api/sample.xml";
final response = await http.get(Uri.parse(url));
if (response.statusCode == 200) {
// API로부터 응답을 가져옴
String xmlData = response.body;
// Xml 데이터를 Json으로 변환하기 위해 xml2json 객체 생성
final Xml2Json xml2Json = Xml2Json();
// Xml 데이터를 Json으로 변환
xml2Json.parse(xmlData);
var jsonData = xml2Json.toParker();
// Json 데이터를 저장
await saveJsonData(jsonData);
} else {
throw Exception('Failed to load XML data');
}
} catch (e) {
print('Error: $e');
}
}
4. SharedPreferences를 사용하여 JSON 데이터 저장
이제 JSON 데이터를 저장할 차례입니다. 여기서는 간단하게 데이터를 저장할 수 있는 라이브러리인 shared_preferences
를 사용해 설명합니다.
Future<void> saveJsonData(String jsonData) async {
try {
// SharedPreferences 인스턴스 생성
SharedPreferences prefs = await SharedPreferences.getInstance();
// JSON 데이터를 'jsonData' 키에 저장
await prefs.setString('jsonData', jsonData);
} catch (e) {
print('Error: $e');
}
}
이제 위의 코드를 사용하여 API로부터 받은 XML 데이터를 JSON으로 변환하고, 앱 내에서 저장할 수 있습니다.
저장한 JSON 데이터는 나중에 앱 내에서 필요한 시점에서 불러와 사용할 수 있습니다.
이처럼 Flutter에서 오픈 API로부터 받은 XML을 JSON으로 변환하고 저장하는 방법을 활용하면, 다양한 웹 API에 대해 유연하게 대처할 수 있습니다.
'Developer > Flutter' 카테고리의 다른 글
[Flutter 공부하기] Flutter란 무엇인가? (0) | 2025.03.01 |
---|---|
<Flutter> Flutter에서 JSON 인코딩 및 디코딩하기 (0) | 2023.09.03 |
<Flutter> Hive: 간편한 로컬 데이터 저장 및 사용법 (0) | 2023.07.24 |
<Flutter> Dart 에서의 Fold (0) | 2023.07.23 |
Flutter로 안드로이드 앱 빌드하기 (0) | 2023.07.18 |