【发布时间】:2019-10-01 11:10:39
【问题描述】:
我有一个 json 数据,我正在使用 await jsonDecode. 加载到 List<Map<String, dynamic>>。
例如,我有一个;
- 金额 = 12500
- 口径 = 24
我需要过滤儿子以获得成熟度值:689.19
另外,如果我的金额 = 12500 且价值 = 689.19,我需要获得 24 的口径。
如何过滤 List> json 数据以获取 Flutter 中的值?
[
{"amount": "5000", "caliber": "12", "maturity": "484.25"},
{"amount": "5000", "caliber": "24", "maturity": "275.67"},
{"amount": "7500", "caliber": "12", "maturity": "726.38"},
{"amount": "7500", "caliber": "24", "maturity": "413.51"},
{"amount": "10000", "caliber": "12", "maturity": "968.50"},
{"amount": "10000", "caliber": "24", "maturity": "551.35"},
{"amount": "12500", "caliber": "12", "maturity": "1210.63"},
{"amount": "12500", "caliber": "24", "maturity": "689.19"},
{"amount": "15000", "caliber": "12", "maturity": "1452.76"},
{"amount": "15000", "caliber": "24", "maturity": "827.03"},
{"amount": "15000", "caliber": "12", "maturity": "1694.89"},
{"amount": "17500", "caliber": "24", "maturity": "964.87"},
{"amount": "17500", "caliber": "36", "maturity": "727.66"},
{"amount": "17500", "caliber": "48", "maturity": "613.53"},
{"amount": "17500", "caliber": "60", "maturity": "548.44"},
{"amount": "20000", "caliber": "12", "maturity": "1937.01"},
{"amount": "20000", "caliber": "24", "maturity": "1102.71"}
]
更新: 在@Muldec 的帮助下,我终于明白了。
首先我将上面的儿子加载到列表中,如下所示。并应用@Muldec 答案,它就奏效了。
List<Map> myList = List<Map>.from(jsonDecode(jsonFastCalculation) as List);
final item = myList.firstWhere((e) => e['amount'] == '12500' && e['caliber'] == '24');
print(item['maturity']);
【问题讨论】: