Flutter 自定义JsonConverter中fromJSON方法中的json=null;冻结具有多个构造函数的类”;

Flutter 自定义JsonConverter中fromJSON方法中的json=null;冻结具有多个构造函数的类”;,flutter,dart,freezed,Flutter,Dart,Freezed,我有这门课 @freezed abstract class CartEntity with _$CartEntity { const factory CartEntity.empty(String status, String message) = _Empty; const factory CartEntity.notEmpty(int x) = _NotEmpty; factory CartEntity.fromJson(Map<String, dynamic>

我有这门课

@freezed
abstract class CartEntity with _$CartEntity {
  const factory CartEntity.empty(String status, String message) = _Empty;

  const factory CartEntity.notEmpty(int x) = _NotEmpty;

  factory CartEntity.fromJson(Map<String, dynamic> json) =>
      _$CartEntityFromJson(json);

}

CarentityConverter中的fromJson方法总是接收空json,那么我错在哪里?

通过使用

    final cartEntity = CartEntityConverter().fromJson({'x':'y'});
    print(cartEntity);
而不是

    final cartEntity = CartEntityWrapperData.fromJson({'x':'y'});
    print(cartEntity);


在这一点上,文档有一个不足之处,我尝试了一些随机的东西来让它工作

而不是创建另一个您直接使用的转换器类,您可以只在主类中添加
.fromJsonA
方法

它看起来像这样:

@冻结
带有$carentity的抽象类carentity{
常量工厂carentity.empty(字符串状态,字符串消息)=\u empty;
常量工厂carentity.notEmpty(intx)=\u notEmpty;
factory Carentity.fromJson(映射json)=>
_$CarentityFromJSON(json);
factory carentity.fromJsonA(映射json){
if(/*条件用于.empty构造函数*/){
返回_Empty.fromJson(json);
}else if(/*条件用于.notEmpty构造函数*/){
返回_NotEmpty.fromJson(json);
}否则{
抛出异常('无法确定从JSON映射的构造函数');
}
}
}
我想用这种方法试试。。谢谢
    final cartEntity = CartEntityWrapperData.fromJson({'x':'y'});
    print(cartEntity);

    final cartEntity = CartEntityConverter().fromJson({'x':'y'});
    print(cartEntity);
    final cartEntity = CartEntityWrapperData.fromJson({'x':'y'});
    print(cartEntity);