【发布时间】:2020-11-12 02:09:22
【问题描述】:
我正在编写一个语言工具。我有一个看起来像这样的languages.json 文件:
{
"paradigms": {
"test paradigm": {
"1sg": "me",
"2sg.gen": "lo",
"3pl.acc": "tven"
}
}
}
(或者,至少这是相关部分)
然后,在我的主要 dart 文件中,我尝试打开 JSON 文件的一部分并将其解析为地图:
void main() async {
var langjson = jsonDecode(await File('resource/languages.json').readAsString());
var paradigms = Map<String, Map<String, String>>.from(langjson['paradigms']);
}
现在飞镖告诉我_TypeError (type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'Map<String, String>')。好的,我知道如果我不强制转换它,那么 paradigms 无论如何都会是那种奇怪的类型,但是我无法将它传递给某个类,这意味着我必须制作类型这些成员也是动态的,而且看起来有点丑(我已经测试过了,它有效)。难道没有办法从jsonDecode 中简单地得到Map 吗?我认为这就是它应该如何工作的方式?
【问题讨论】: