首页 > 解决方案 > 以全局方式将骆驼案转换为蛇案

问题描述

有没有办法将字段转换为蛇形以用于映射来自飞镖中休息调用的响应?

意思是我在一个地方声明我希望在snake_case中发生映射,而不必为我创建的每个模型都提及它?

寻找类似于我们如何通过Java中的ObjectMapperPropertyNamingStrategy.SNAKE_CASE实现这一点的东西。

在颤动中进行休息调用(遵循蛇形外壳),并且只有在我以蛇形大小写格式命名字段时才能映射。

尝试了以下没有任何区别并最终得到空值的方法。

class FeatureResponse {
  @JsonValue("trending_posters") // tried this from json_annotation package
  List<Poster> trendingPosters;

  FeatureResponse({this.trendingPosters});

  factory FeatureResponse.fromJson(Map<String, dynamic> data) => _$FeatureResponseFromJson(data);

  Map<String, dynamic> toJson() => _$FeatureResponseToJson(this);
}

或者,有一个包dart_json_mapper可以帮助这个蛇案例映射。

但这与用于为上述对象自动生成零件文件的json_annotation包冲突。

有没有解决的办法?最好不需要额外的包。请指教。

作为参考,以下内容可行,但不热衷于在蛇案例中命名字段以支持这一点。

class FeatureResponse {
  List<Poster> trending_posters;

  FeatureResponse({this.trending_posters});

  factory FeatureResponse.fromJson(Map<String, dynamic> data) => _$FeatureResponseFromJson(data);

  Map<String, dynamic> toJson() => _$FeatureResponseToJson(this);
}

标签: flutterdart

解决方案


推荐阅读