【问题标题】:dart freezed convert to another data type飞镖冻结转换为另一种数据类型
【发布时间】:2021-07-03 16:32:24
【问题描述】:

@JsonKey(name: "favourite") @Default("") String favourite

在我的 json 中 favouriteYN ,这意味着 truefalse,可以直接在冻结中转换吗?所以我可以直接使用布尔值,而不是字符串

【问题讨论】:

    标签: flutter dart freezed flutter-freezed


    【解决方案1】:

    您可以为该字段创建自定义转换器。

    class MyConverter implements JsonConverter<String, bool> {
      const MyConverter ();
    
      @override
      MyResponse fromJson(string input) {
        switch (input) {
          case "Y": return true;
          case "N": return false;
          default: throw NotSupportedError();
        }
      }
    
      @override
      String toJson(bool input) {
        switch (input) {
          case true: return "Y";
          case false: return "N";
          default: throw NotSupportedError();
        }
      }
    }
    
    @JsonKey(name: "favourite") @Default("") @MyConverter() String favourite
    

    【讨论】:

    • 还是要用String还是可以@JsonKey(name: "favourite") @Default(false) @MyConverter() boolean favourite?
    • 嗨,我听从了你的建议,收到了'StringBoolConverter.fromJson' ('ProductItem Function(String)') isn't a valid override of 'JsonConverter.fromJson' ('String Function(bool)').
    • @FeelRightz ProductItem 是什么?你从来没有在你的问题中提到过这种类型。
    猜你喜欢
    • 2021-09-14
    • 1970-01-01
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    • 2012-03-28
    • 2021-04-12
    • 1970-01-01
    • 2022-01-08
    相关资源
    最近更新 更多