Flutter中获取MUSIXMATCH API数据需创建多少个类模型
Flutter对接MUSIXMATCH API所需序列化数据模型数量
按照你给出的接口返回示例可见结构,最少需要创建5个独立的数据类模型就能完成当前可见字段的序列化解析,如果后续省略号隐藏的返回字段里存在其他自定义对象结构,再对应补充模型就行。
判断要不要新建数据类的规则非常简单:只有字段值是自定义结构的对象时才需要单独建类,字符串、数字、布尔、null这类基础类型,以及基础类型构成的数组、字典都不需要额外建类。逐层对应结构的模型如下:
- 根响应模型:对应接口返回的最外层对象,核心字段为
message - 消息层模型:对应
message字段的对象值,核心字段为body - 艺人列表容器模型:对应
body字段的对象值,核心字段为artist_list(艺人列表项类型的数组)。注意嵌套在艺人信息里的artist_credits对象结构和这个模型完全一致(同样只包含artist_list数组字段),可以直接复用这个模型,不需要重复建类。要是你为了语义区分硬要拆成两个类,最多也就多1个结构完全相同的冗余类,总共6个,从代码复用角度完全不推荐这么做 - 艺人列表项模型:对应
artist_list数组里的每一个元素,这层是新手最容易漏的——数组元素不是直接存艺人详情,是额外包了一层key为artist的对象,漏了这层铁定解析失败 - 艺人详情模型:对应
artist字段下的核心艺人信息,包含artist_id、artist_name、artist_rating、artist_comment等基础字段,以及artist_credits字段(直接用前面的艺人列表容器模型即可)
注意:示例里
artist_alias_list、artist_name_translation_list这类当前为空数组的字段,如果后续确认存的是字符串、数字这类基础类型值,直接定义对应基础类型的List就行,不需要额外建类;如果存的是自定义结构对象(比如多语言翻译项),再对应加相关模型类就可以。
内容的提问来源于stack exchange,提问作者Jinal Panchal
相关产品推荐
相关产品推荐

