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

如何在Flutter中使用Dart解析REST API返回的JSON数组数据

Dart解析外层为数组结构JSON的标准方案

你遇到的类型识别问题本质是json.decode返回值默认是dynamic类型,没有做逐层显式类型转换导致的,不是解析过程丢失了字符串标识,按以下规范步骤处理即可:


核心实现代码

import 'dart:convert';

void parseApiResponse(String responseBody) {
  // 1. 解析JSON并显式转换为List类型
  final List<dynamic> parsedList = json.decode(responseBody) as List;

  // 可选:增加数组非空判断,避免接口返回空数组时报错
  if (parsedList.isEmpty) return;

  // 2. 提取数组第一个元素,转换为Map类型
  final Map<String, dynamic> data = parsedList.first as Map<String, dynamic>;

  // 3. 取值时显式指定类型,字符串会被正常识别
  final String key1 = data['key1'] as String;
  final String key2 = data['key2'] as String;

  // 后续业务逻辑处理
  print('key1: $key1, key2: $key2');
}

补充说明

  • 外层带方括号的数组结构本身是合法JSON格式,完全不需要手动裁剪首尾符号,按数组结构解析就符合编码规范
  • 如果是高频使用的业务接口,建议使用json_serializable库自动生成序列化解析代码,减少手动类型转换的出错概率

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:15:01