【发布时间】:2020-03-02 01:52:12
【问题描述】:
我有一个从 API 检索数据的应用程序,我以列表的形式接收数据,当我打印它时,我可以看到数据正常。
[
{
"1": "MaxMilyin",
"2": "409733",
"3": "1130794"
},
{
"1": "HippopotamusRex",
"2": "346742",
"3": "1204932"
},
...
]
当我尝试将列表传递给我的模型列表时,我只得到:
[Instance of 'TopTenUsersModel', Instance of 'TopTenUsersModel', ...]
这是我的模型类,我用这个site 来生成类:
class TopTenUsersModel {
String s1;
String s2;
String s3;
TopTenUsersModel({this.s1, this.s2, this.s3});
TopTenUsersModel.fromJson(Map<String, dynamic> json) {
s1 = json['1'];
s2 = json['2'];
s3 = json['3'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['1'] = this.s1;
data['2'] = this.s2;
data['3'] = this.s3;
return data;
}
}
这是我将数据作为模型返回的方法。
static Future<List<TopTenUsersModel>> getTopTenUsers() async{
try{
print("INICIANDO CONEXÃO COM A API...");
var response = await client.get(
Constants.BASE_URL + Constants.getTopTenUsers + Constants.AUTH
);
//print("PRINT RESPONSE NETWORK UTIL: ${response.body}");
// Here I can see the data ok!
List<dynamic> list = json.decode(response.body) as List;
// Here I get 'Instance of 'TopTenUsersModel''
return (json.decode(response.body) as List)
.map((item) => TopTenUsersModel.fromJson(item))
.toList();
} on SocketException catch (e){
throw (e.message);
} finally {
client.close();
}
}
【问题讨论】:
-
我不知道你想要什么。看来您已尝试在 tou 控制台中打印 TopTenUsersModel 列表。您必须知道无法在控制台中直接打印 Dart 对象。请在您的 TopTenUsersModel 类中实现一个 toSting 方法,然后您可以打印您的 TopTenUsersModel 的任何实例
-
看看this。检查“JSON 结构 #5:地图列表”部分
标签: arrays json flutter dart json-deserialization