如何通过HttpClientResponse获取List对象?

时间:2018-11-24 16:09:53

标签: dart flutter

如何在“结果”中获取列表对象?我尝试对“请求”对象使用toList()方法,但无法解决。

import 'dart:io';
import 'dart:convert';

void main() async {
  var request = await HttpClient().getUrl(Uri.parse('https://jsonplaceholder.typicode.com/posts')); // produces a request object
  var response = await request.close(); // sends the request

  // transforms and prints the response
  var result;

  await for (var contents in response.transform(Utf8Decoder())) {
   result =contents;
  }

  print(result);

}

谢谢

丹尼尔

2 个答案:

答案 0 :(得分:0)

简单如下

List elements = json.decode(response.body);

答案 1 :(得分:0)

首先,response.transform返回结果的多个部分,您需要将它们连接在一起以获取全部结果:

  var result = new StringBuffer();
  await for (var contents in response.transform(Utf8Decoder())) {
      result.write(contents);
  }

第二,您得到的只是一个“文本”(json格式),而不是您期望的“对象”,您需要对其进行解码:

  List<dynamic> myList = jsonDecode(result.toString());
  print(myList);