首页 > 解决方案 > 是否可以使用 Dart 从 REST api 部分读取 JSON 响应

问题描述

是否可以使用 Dart 流式传输 REST API JSON 响应?前任。响应大小为 5000 行。我想逐行阅读,而无需先从源代码加载整个响应。

我认为 Java 和 JavaScript 也有类似的可能。

标签: jsonapiparsingdartstream

解决方案


使用http包,您可以使用该send()方法发送请求并获得Stream响应。

使用Utf8DecoderLineSplitterfrom dart:convert,您可以在收到每一行时对其进行解码和读取。

import 'dart:convert';
import 'package:http/http.dart';

main() async {
  var request = Request('GET', Uri.parse('http://localhost:8090'));
  var response = await request.send();

  var lineStream =
      response.stream.transform(Utf8Decoder()).transform(LineSplitter());

  // lineStream is a Stream<String> with each line from the response as an event.
  // We can use the listen() method or await for to read it.

  await for (String line in lineStream) {
    print(line);
  }
}

推荐阅读