Dart 模型在混合多种数据类型时抛出错误
Dart model throws error when mixing many data types
我制作了这个简单的模型来使用 API
class BooksModel {
List<_Book> _books = [];
BooksModel.fromJson(Map<dynamic, dynamic> parsedJson) {
List<_Book> temp = [];
for (int i = 0; i < parsedJson['books'].length; i++) {
_Book book = _Book(parsedJson['books'][i]);
temp.add(book);
}
_books = temp;
}
List<_Book> get books => _books;
}
class _Book {
int _id;
String _name;
_Book(book) {
_id = book['id'];
_name = book['name'];
}
int get id => _id;
int get name => _name;
}
问题是我必须将所有“_Book”class 属性转为 'String',如果我只制作一个 'int',如上例所示,它会抛出此错误.
type 'String' is not a subtype of type 'int'
我什至没有在我的应用程序中使用 'id',它是 'int',所以这与它的使用无关,问题出在这个模型中
你能否展示你的 json 的例子,这样我就可以告诉你你的模型应该是什么或者哪里出了问题。
所以也许你的问题不是那么大,需要的 id 是整数,你传递的是字符串。
book['id']
是字符串吗?
试一试:
// _id = book['id'];
_id = int.parse(book['id']);
我制作了这个简单的模型来使用 API
class BooksModel {
List<_Book> _books = [];
BooksModel.fromJson(Map<dynamic, dynamic> parsedJson) {
List<_Book> temp = [];
for (int i = 0; i < parsedJson['books'].length; i++) {
_Book book = _Book(parsedJson['books'][i]);
temp.add(book);
}
_books = temp;
}
List<_Book> get books => _books;
}
class _Book {
int _id;
String _name;
_Book(book) {
_id = book['id'];
_name = book['name'];
}
int get id => _id;
int get name => _name;
}
问题是我必须将所有“_Book”class 属性转为 'String',如果我只制作一个 'int',如上例所示,它会抛出此错误.
type 'String' is not a subtype of type 'int'
我什至没有在我的应用程序中使用 'id',它是 'int',所以这与它的使用无关,问题出在这个模型中
你能否展示你的 json 的例子,这样我就可以告诉你你的模型应该是什么或者哪里出了问题。 所以也许你的问题不是那么大,需要的 id 是整数,你传递的是字符串。
book['id']
是字符串吗?
试一试:
// _id = book['id'];
_id = int.parse(book['id']);