Flutter 如何在flatter中将JSON响应转换为Map
我有一个来自API调用的JSON响应。格式是这样的Flutter 如何在flatter中将JSON响应转换为Map,flutter,Flutter,我有一个来自API调用的JSON响应。格式是这样的 [ { "hotelname": "A", "roomno": "101", "occupancy": "4" }, { "hotelname": "A", "roomno": "102", "occupancy": "3" }, { "hotelname": "B", "roomno": "101", "occupancy": "4" }, {
[
{
"hotelname": "A",
"roomno": "101",
"occupancy": "4"
},
{
"hotelname": "A",
"roomno": "102",
"occupancy": "3"
},
{
"hotelname": "B",
"roomno": "101",
"occupancy": "4"
},
{
"hotelname": "B",
"roomno": "202",
"occupancy": "3"
}
]
我想写一个代码,其中一个下拉列表显示酒店名称(a、B、C等),另一个下拉列表显示相应的roomno
为了实现这一点,我想将我的JSON响应转换为如下所示的映射
Map<String,String> _hoteldata = {
"101":"A",
"102":"A",
"101":"B",
"202":"B",
};
Map\u hoteldata={
“101”:“A”,
“102”:“A”,
“101”:“B”,
“202”:“B”,
};
首先,使用解析json,然后从列表中创建映射,例如,使用:
这样的映射不可能存在,因为键不是唯一的。@bereal我的键现在是唯一的。我已经更新了我的问题。现在可能吗?谢谢你,这对我帮助很大。
import 'dart:convert';
var rooms = jsonDecode(json) as List;
var hotelData = Map.fromEntries(
rooms.map((room) => MapEntry(room['roomno'], room['hotelname']))
);