dataclass:
Person(name='John', age='40', musics=[{'name': 'Imagine'}])
b'{"name":"John","age":"40","musics":[{"name":"Imagine"}]}'

TypedDict:
{'name': 'John', 'age': '40', 'musics': [{'name': 'Imagine'}]}
b'{"name":"John","age":"40","musics":[{"name":"Imagine"}]}'
