반응형
문제 해결 목적
ì¸ê´2ì°¨ìí
현재 강화도 공공 버스앱을 만들고 있는데 해당 버스의 정류장 이름이 한글로 안나옴
https://okky.kr/questions/1169440
여기서는 UTF-8 변환 문제
문제 해결 방법
utf8. 디코드 하는 코드를 추가
Future<List<BusStop>> fetchBusStops(String routeId) async {
final url = Uri.parse(
'https://apis.data.go.kr/1613000/BusRouteInfoInqireService/getRouteAcctoThrghSttnList?serviceKey=서비스키&_type=json&cityCode=23&routeId=$routeId');
final response = await http.get(url, headers: {
'Content-Type': 'application/json; charset=UTF-8',
});
if (response.statusCode == 200) {
final responseData = utf8.decode(response.bodyBytes); // UTF-8로 디코딩
print('API response data for route $routeId: $responseData'); // API 응답 출력
try {
final jsonData = json.decode(responseData);
if (jsonData['response']['header']['resultCode'] == '00') {
final items = jsonData['response']['body']['items']['item'];
print('Parsed JSON items for route $routeId: $items'); // JSON 파싱된 데이터 출력
return items is List
? items.map((item) => BusStop.fromJson(item)).toList()
: [BusStop.fromJson(items)];
} else {
throw Exception('Error: ${jsonData['response']['header']['resultMsg']}');
}
} catch (e) {
print('Failed to parse JSON for route $routeId: $e');
throw Exception('Failed to parse JSON');
}
} else {
throw Exception('Failed to load data');
}
}
결과
잘 나온당~~~
728x90
반응형
'Flutter-플러터' 카테고리의 다른 글
Flutter- Api 받아오는 방법 / 병렬과 직렬 (0) | 2024.08.19 |
---|---|
path_provider , path 패키지를 이용해서 sqlite 백업 (0) | 2024.02.07 |
음식점 사장님 장부 앱 Test Code 3 : LinkedHasMap (1) | 2023.11.24 |
Flutter - Gap - SizedBox (0) | 2023.11.07 |
Flutter - supabase (0) | 2023.11.06 |