ListView를 사용한 Flutter HTTP 클라이언트 예제 – 백그라운드에서 데이터 가져오기 및 JSON 구문 분석

3421 단어 flutterjsonlistview
https://grokonez.com/flutter/flutter-http-client-example-listview-fetch-data-parse-json-background

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 runs parsePosts() 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 구문 분석

좋은 웹페이지 즐겨찾기