尝试解析 JSON 时,InternalLinkedHashMap<String, dynamic>' 不是 'FutureOr<List<dynamic> 类型的子类型
Posted
技术标签:
【中文标题】尝试解析 JSON 时,InternalLinkedHashMap<String, dynamic>\' 不是 \'FutureOr<List<dynamic> 类型的子类型【英文标题】:InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'FutureOr<List<dynamic> when try to parse JSON尝试解析 JSON 时,InternalLinkedHashMap<String, dynamic>' 不是 'FutureOr<List<dynamic> 类型的子类型 【发布时间】:2019-06-20 18:43:07 【问题描述】:我通过分步指南学习 Flutter。因此,当我使用指南中的代码时 - 它运行良好,但是当我尝试更改 JSON URL 时,我得到了错误。据我了解,JSON 格式和 jsonDecode 的问题只是无法解码 RIOT JSON,但如何解决呢?
List _games = await getGames();
Future<List> getGames() async
//Not working with this JSON URL
String apiUrl = 'https://euw1.api.riotgames.com/lol/match/v4/matchlists/by-account/UZs5l9TT7GLEPfoOZ1eTMqqyJEomgmUHueGQ2aFNHaYTOZI/?api_key=RGAPI-07972f29-94f8-4d54-a2dd-527d4eeb0335';
//Working good with this JSON URL
String apiUrl = 'https://jsonplaceholder.typicode.com/posts';
http.Response response = await http.get(apiUrl, headers: "Accept": "application/json");
print(jsonDecode(response.body));
return jsonDecode(response.body);
【问题讨论】:
嗨!欢迎来到堆栈溢出。你到底得到了什么错误? 【参考方案1】:改变
Future<List>
到
Future<Map<String,dynamic>>
如果你有像 [1, 2, 3]
或 ["foo", "bar", "baz"]
这样的 JSON,你会得到一个 List
,但如果你有像 "foo": 1, "bar": 2, "baz": 3
这样的 JSON,你会得到一个 Map<String,dynamic>
。对于"foo"
,您将获得String
,对于true
,您将获得bool
,依此类推。我想你明白了。
【讨论】:
以上是关于尝试解析 JSON 时,InternalLinkedHashMap<String, dynamic>' 不是 'FutureOr<List<dynamic> 类型的子类型的主要内容,如果未能解决你的问题,请参考以下文章
加载作业尝试使用 java 将 json 插入 BigQuery 表时解析错误
Angular Nx Nrwl - 尝试创建新库时无法解析 tsconfig.base.json:JSON 中的 PropertyNameExpected
尝试使用转义单引号解析 JSON 时,Javascript 中出现“意外标识符”错误