一个API给了我一个JSON响应,如下所示:

{
    "amountCredited":0,
    "isFirstOrder":false,
     "orderItems":[
       {
          "_id":624342e1c66be9001d501230,
          "status":2,
          "pinCode":749326,
          "kioskId":61bb3982089a66001db4ab77,
          "kioskActivityId":620668ad433322b99557c874
          }
       ]
}

我试图访问"orderItems"中的数据,以便将其提供给应用程序中的现有解析模型

order = OrderItemModel.fromJson(response.body['orderItems'] as Map<String, dynamic>);

但由于orderItems JSON响应中的数据在array中,所以我无法通过这种方式访问它..

知道这个JSON "orderItems"数组总是只有一项作为响应,我如何访问它?


Would something like 100 enable me to access the first item data ?

推荐答案

因为你总是知道这个数组总是只有一个项目.我们先把它列出来&;然后访问第一个元素.

order = OrderItemModel.fromJson((response.body['orderItems'] as List<dynamic>).first as Map<String, dynamic>);

To understand it a bit better refer to the code below:

JSON响应包含一个数组,我们需要访问该array.

final ordersArray = response.body['orderItems'] as List<dynamic>;

然后我们想要访问第一个订单(根据问题)

final firstOrder = ordersArray.first as Map<String, dynamic>;

一旦我们拿到订单,我们就会把它转换成模型

final order = OrderItemModel.fromJson(firstOrder);

编辑:

Json相关问答推荐

Jolt需要将缺少的值设置为空并保持相同的位置

Moshi:序列化 List 时出现问题

如何使用Powershell查找所有包含特定键值对的JSON对象并迭代所有对象?

如何在JQ中展平多维数组

如何使用 SQL Server 将 json 存储为字符串的列分解/规范化为行和列?

我需要在 mongodb compass 中检索索引(编号 1)信息

使用 KQL 和外部 data() 运算符从 json 文件中提取信息

如何将从嵌套 Select 返回的空值转换为空数组?

判断 JSON 中的对象,而不是条件中提到的对象

N1QL 聚合查询 Couchbase

JSON RPC - 什么是id?

规范化 JSON 文件

Spring MVC控制器中的JSON参数

ASP.NET MVC 读取原始 JSON 发布数据

Jackson:忽略 Json 配置值

在 Android 中使用带有 post 参数的 HttpClient 和 HttpPost

在 Java 中比较两个 JSON 文件的最佳方法

Javascript:如何判断 AJAX 响应是否为 JSON

如何从 BindingResult 获取控制器中的错误文本

如何在 JAVA 中对 JSONArray 进行排序