我有一个json文件,如下所示。当用户选择金额和期限时,我需要显示一个期限值。
示例:如果用户选择数量= 500且期限= 24M。我需要显示数字6。
如何在Flutter中过滤地图?
这是我到目前为止所做的:
我的json文件:
{
“AMOUNT”:[
{
"500":{
“MATURITY":[
{
"12M”:”4”
},
{
"24M”:”6”
},
{
"36M”:”8”
},
{
"48M”:”10”
},
{
"60M”:”12”
}
]
},
“1000":{
“MATURITY":[
{
"12M”:”8”
},
{
"24M”:”12”
},
{
"36M”:”16”
},
{
"48M”:”20”
},
{
"60M”:”24”
}
]
}
}
]
}
Json负载:
// Test part trying to load json into basic map...
String jsonFastMaturity = await rootBundle.loadString("assets/myfile.json");
Map _mapFastMaturity = jsonDecode(jsonFastMaturity);
List _tmpFastMaturity = _mapFastMaturity[“AMOUNT”];
答案 0 :(得分:1)
这应该有效
final amount = "500";
final maturity = "24M";
_mapFastMaturity["AMOUNT"][0][amount]["MATURITY"].singleWhere((m) => m.containsKey(maturity))[maturity]
如果遇到错误,这应该有助于调试。您在哪一行出错?
final a = _mapFastMaturity["AMOUNT"];
final b = a[0];
final c = b[amount];
final d = c["MATURITY"];
final e = d.singleWhere((m) => m.containsKey(maturity));
final f = e[maturity];