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

Dart/Flutter如何访问Map值中列表内的特定元素?

如何访问API响应中的特定元素

你的判断完全正确,这是一套嵌套的键值对结构(对应不同语言里的Map/对象类型),外层包含error和success两个键,success对应的值本身也是一个键值对结构,内部包含data(数组类型)、totalRows、dbDriver三个子键。

下面是几种主流编程语言的访问示例:

Python 示例

将JSON响应解析为Python字典后,可通过方括号或.get()方法访问元素:

  • 获取success下的totalRows:
# 假设已将API响应解析为字典response_dict
total_rows = response_dict["success"]["totalRows"]
# 用.get()避免键不存在时抛出异常
total_rows = response_dict.get("success", {}).get("totalRows")
  • 获取data数组中第一个案例的subject:
first_case_subject = response_dict["success"]["data"][0]["subject"]
# 安全写法,防止数组为空或键缺失
first_case_subject = response_dict.get("success", {}).get("data", [{}])[0].get("subject")

JavaScript 示例

JSON解析后为JS对象,可使用点语法或方括号访问:

// 假设已解析得到response对象
// 获取totalRows
const totalRows = response.success.totalRows;
// 或用方括号形式
const totalRows = response["success"]["totalRows"];

// 获取第一个案例的subject
const firstSubject = response.success.data[0].subject;
// 可选链操作符(ES2020+),避免层级缺失时报错
const firstSubject = response?.success?.data?.[0]?.subject;

Java 示例

若将JSON解析为Map结构,可通过类型转换逐层访问:

import java.util.Map;
import java.util.List;

public class CaseAccessExample {
    public static void main(String[] args) {
        Map<String, Object> response = ...; // 解析后的API响应Map

        // 获取success下的totalRows
        Map<String, Object> successMap = (Map<String, Object>) response.get("success");
        String totalRows = (String) successMap.get("totalRows");

        // 获取data数组第一个元素的subject
        List<Map<String, Object>> dataList = (List<Map<String, Object>>) successMap.get("data");
        Map<String, Object> firstCase = dataList.get(0);
        String subject = (String) firstCase.get("subject");
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 09:01:02