ListView를 사용한 Flutter HTTP 클라이언트 예제 – 백그라운드에서 데이터 가져오기 및 JSON 구문 분석
ListView를 사용한 Flutter HTTP 클라이언트 예제 – 백그라운드에서 데이터 가져오기 및 JSON 구문 분석
이 자습서에서는
http
패키지를 사용하여 인터넷에서 데이터를 가져온 다음 JSON을 개체의 Dart 목록으로 구문 분석하고 해당 목록을 ListView
위젯에 표시하는 Flutter 앱을 빌드합니다.관련 게시물: Flutter ListView example with ListView.builder
Flutter 앱 개요
JSONPlaceholder REST API 에서 가져온 Post 객체 목록을 표시할 수 있는 Flutter 앱을 빌드합니다. 백그라운드에서 비용이 많이 드는 계산을 수행하는 JSON 문서를 구문 분석하고 있습니다.
백그라운드에서 HTTP 가져오기 데이터 및 ListView에 표시
http 패키지 추가
pubspec.yaml의 종속성 섹션에 this package을 추가합니다.
dependencies: http:
데이터 모델 클래스 만들기
class Post {
final int userId;
final int id;
final String title;
final String body;
Post({this.userId, this.id, this.title, this.body});
factory Post.fromJson(Map json) {
return Post(
userId: json['userId'] as int,
id: json['id'] as int,
title: json['title'] as String,
body: json['body'] as String,
);
}
}
JSON을 개체 목록으로 구문 분석
HTTP 응답을 Dart 객체 목록으로 변환합니다.
List<Post> parsePosts(String responseBody) {
final parsed = json.decode(responseBody).cast<Map<String, dynamic>>();
return parsed.map<Post>((json) => Post.fromJson(json)).toList();
}
별도의 격리에서 데이터 가져오기
다음은
get
메서드를 사용하여 데이터를 가져오는 방법입니다.Future<List<Post>> fetchPosts(http.Client client) async {
final response = await client.get('https://jsonplaceholder.typicode.com/posts');
// compute function to run parsePosts in a separate isolate
return parsePosts(response.body);
}
느린 휴대폰에서
fetchPosts()
함수를 실행하면 앱이 JSON을 구문 분석하고 변환할 때 잠시 멈출 수 있습니다.So we are moving the parsing and conversion to a background isolate using Flutter
compute()
function. This function runsparsePosts()
in a background isolate and return the result.
더 보기:
https://grokonez.com/flutter/flutter-http-client-example-listview-fetch-data-parse-json-background
ListView를 사용한 Flutter HTTP 클라이언트 예제 – 백그라운드에서 데이터 가져오기 및 JSON 구문 분석
Reference
이 문제에 관하여(ListView를 사용한 Flutter HTTP 클라이언트 예제 – 백그라운드에서 데이터 가져오기 및 JSON 구문 분석), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/loizenai/flutter-http-client-example-with-listview-fetch-data-and-parse-json-in-background-kbg텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)