Based on my experience, dart does not provide that kind of system yet. So, basically we create function like toMap() that manually convert the object to a key-value pair of map. So, later when you have a Human object, you just can call human. tomap() .