我们如何在 Flutter 中从 JSON 对象中获取特定数据?
Posted
技术标签:
【中文标题】我们如何在 Flutter 中从 JSON 对象中获取特定数据?【英文标题】:How can we get specific data from JSON object in flutter? 【发布时间】:2021-10-17 08:12:20 【问题描述】:我正在尝试从以下 JSON 响应中获取用户 ID:
"status": "200",
"msg": "Login Success !!",
"userdata":
"id": 9,
"name": "Zulqarnain",
"gender": "male",
"dob": "1999-10-10",
"email": "zulqarnain@gmail.com",
我将尝试通过在flutter中编写以下代码来获得它:
Map<String, dynamic> map = json.decode(response.body);
List<dynamic> data = map["userdata"];
print(data[0]["id"]);
但它给了我错误Unhandled Exception: type '_InternalLinkedHashMap
【问题讨论】:
您是从 JSON 中获取单个用户还是多个用户?你能以更结构化的方式添加 JSON 响应吗? 【参考方案1】:改变
List<dynamic>
到
Map<String,dynamic>
如果你有像 ["foo", "bar", "baz"] 这样的 JSON,你会得到一个 List,但是如果你有像 "foo": 1, "bar": 2, "baz": 3 这样的 JSON 你得到一个 Map
【讨论】:
我也在我的代码中写了这一行,请在我编辑后再次查看问题。 试试这个 print(map["userdata"][0]["id"]);或 print(map["userdata"]["id"]);如果只有一个用户。可能有帮助。【参考方案2】:根据错误,这是因为 map["userdata"] 中的内容是 Map
要解决这个问题,您可以将数据变量的类型设置为 Map
Map<String, dynamic> data = map["userdata"];
print(data["id"]);
【讨论】:
以上是关于我们如何在 Flutter 中从 JSON 对象中获取特定数据?的主要内容,如果未能解决你的问题,请参考以下文章
在 Flutter/Dart 中从 JSON 数组中提取数据