You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Twitter API返回JSON的data字段单条推文存入Dart List<String>

Dart处理Twitter API响应提取推文JSON字符串方案

核心实现

该需求和响应中同时存在data和errors字段无关,无需额外处理errors字段即可完成目标,核心逻辑如下:

  1. 用Dart内置的jsonDecode将原始响应字符串解码为Map结构
  2. 提取data字段对应的推文数组
  3. 遍历数组中的每条推文对象,单独用jsonEncode序列化为字符串后存入列表

核心处理代码

import 'dart:convert';

List<String> parseTweetJsonList(String rawResponseJson) {
  // 解码完整响应JSON
  final Map<String, dynamic> fullResponse = jsonDecode(rawResponseJson);
  // 提取推文数组,字段不存在时返回空列表避免空异常
  final List<dynamic> tweetDataList = fullResponse['data'] ?? [];
  // 遍历每条推文单独序列化为字符串
  return tweetDataList.map((tweetItem) => jsonEncode(tweetItem)).toList();
}

结合Flutter http库的完整请求示例

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

Future<List<String>> getTwitterTweets() async {
  final response = await http.get(
    Uri.parse('你的Twitter API请求地址'),
    headers: {
      'Authorization': 'Bearer 你的接口授权Token',
      'Content-Type': 'application/json'
    },
  );

  if (response.statusCode == 200) {
    // 直接调用上面的解析方法返回结果
    return parseTweetJsonList(response.body);
  } else {
    throw Exception('推文请求失败,状态码:${response.statusCode}');
  }
}

补充说明

  • 若需要处理接口返回的错误提示,可单独提取fullResponse['errors']字段做逻辑处理,和data字段的解析逻辑完全独立,互不影响
  • 如果后续需要在ListView中渲染推文,更推荐直接将推文对象转为自定义实体类使用,性能远高于反复序列化/反序列化JSON字符串

内容的提问来源于stack exchange,提问作者aaa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 02:15:06