abstract class JsonTO {
Map<String, dynamic> toJson();
}
class Device implements JsonTO {
Map<String, dynamic> toJson() {
return ... Your serialization thing
}
}
main() {
final device = Device();
final json = device.toJson();
json.forEach((final String key, final value) {
_logger.info("Key: {{$key}} -> value: ${value}");
// do with this info whatever you want
});
}
class Person{
final String _firstName;
final String _secondName;
Person(this._firstName,this._secondName);
String get hisName{
return _firstName;
}
}
class Player extends Person{
final int _shirtNumber;
Player(String _firstName,String _secondName,this._shirtNumber) : super(_firstName, _secondName);
List get everything{
final stuff=[_firstName,_secondName,_shirtNumber];
return stuff;
}
}
void main(List<String> arguments) {
final foo = Player('David','Beckham',7);
print(foo.everything);
for (final blah in foo.everything){
print(blah);
}
}
5条答案
按热度按时间s6fujrry1#
没有。
你需要的是反射。如果你的平台上有
dart:mirrors
API(不在Flutter中),你可以使用dart:mirrors
来实现。你可以使用package:reflectable
来生成代码。或者你可以使用package:json_serializable
从一个对象生成Map
。如果你只是想为一个特定的类做些什么,我只需要手动写:
dart Map<String, dynamic> toJson() => {"id": id, "title": title, "article": article};
,然后在你想编译的时候使用它。tpgth1q72#
这几乎每天都困扰着我。这也是Dart的Web端的问题。在我看来,这是Dart的主要缺点之一。
然而-这里是我的解决方案。我为这些“可序列化”的类使用接口类。
字符串
3zwtqj6y3#
你也可以使用一个getter?它会要求你一次性设置所有的字段,但是在那之后,你可以调用完整的字段列表,并通过它进行查询。
字符串
bxjv4tth4#
令人难以置信的是,这个简单的问题没有简单的答案。
字符串
cgyqldqp5#
你所要做的就是给你拥有所有属性的对象命名,例如
字符串