我是Flutter的新手,所以我不确定应该如何进行API调用,该调用来自我使用Retrofit的Java。
JSON响应:
let query = NSPredicate(format: "(%K = %@) AND (%K = %@) AND (%K in (%@))",
"isSelected","true",
"identifier","S300",
"idLang" , idLang)
模型类:
{
"total": 13,
"rows": [
{
"id": 1,
"name": "Name"
}
]
}
主班
class Category {
int total;
List<Rows> rows;
Category({this.total, this.rows});
Category.fromJson(Map<String, dynamic> json) {
total = json['total'];
if (json['rows'] != null) {
rows = new List<Rows>();
json['rows'].forEach((v) {
rows.add(new Rows.fromJson(v));
});
}
}
}
class Rows {
String name;
Rows({this.name});
Rows.fromJson(Map<String, dynamic> json) {
name = json['name'];
}
}
我不确定如何尝试使用Rows.fromJson()获取对象,但是我仅获得“行实例”,并且通过调用名称得到null。
答案 0 :(得分:0)
答案 1 :(得分:0)
这种方法是正确的,但对于列表,应使用list.map对列表进行反序列化。
尝试一下,我没有测试过,我只是看你的例子写出来的
var response = await http.get(
Uri.encodeFull("http://192.168.0.10/api/v1/categories"),
headers: {
"Authorization": "API",
"Accept": "application/json"
}
);
List<Rows> rows = [];
Map map = json.decode(response.body);
List l = map["rows"];
rows = l.map((map) => Rows.fromJson(map)).toList();