一个API给了我如下的json响应:
[{"version": "v3.5"}, {"setup": true}, {"address": "e7d398b"}, {"connected": true}, {"active": true}, {"id": "ce7143"}, {"genuine": true}]
正如你所看到的,这是一个对象列表,我试着用quicktype生成的模型类来解析它-
List<Result>.from(result.map((x) => Result.fromJson(x)));
但是它失败了,因为每个对象都是不同类型的。
我想我必须将数组中的每个对象逐一转换为Dart类,并将其添加到Array中。
所以我尝试了这个(我正在使用dio)-
final result = response.data;
var b = List.empty(growable: true);
result.map((x) => b.add(x));
但它不起作用。
我怎样才能至少访问数组的元素呢?
2条答案
按热度按时间3htmauhk1#
有没有JSON是不能用Dart解析的。但是你可能会得到一个需要小心导航的数据结构。类使它更容易,但是并不总是有一个类结构适合任何JSON,也许这就是你的观点。在这种情况下,你必须以一种特别的方式导航到感兴趣的数据。
d7v8vwbk2#
正如上面提到的Randal Schwartz,没有JSON不能用Dart解析,在您的例子中,您有
Map
对象的List
,您可以做的是:如果你使用的是
dio
flutter包,它会返回解码后的json
,不需要调用jsonDecode
,如果你面对大的json
,我推荐使用json code generation,而不是依赖quicktype生成的模型。