Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振json#U可序列化模型错误:未处理的异常:类型';空';不是类型为';字符串';内铸_Flutter_Dart_Json Serializable - Fatal编程技术网

Flutter 颤振json#U可序列化模型错误:未处理的异常:类型';空';不是类型为';字符串';内铸

Flutter 颤振json#U可序列化模型错误:未处理的异常:类型';空';不是类型为';字符串';内铸,flutter,dart,json-serializable,Flutter,Dart,Json Serializable,我正在尝试从Flatter中的服务器获取数据,并在我的数据模型中使用json_serializable。 我成功地获取了数据,但是当转换数据列表中的json时,我得到了以下错误:未处理的异常:类型“Null”不是类型转换中类型“String”的子类型。 我不知道怎么解决。 这是我的fetch函数 Future<List<Data>> getallNews() async { try { var response = await NewsAppApi.d

我正在尝试从Flatter中的服务器获取数据,并在我的数据模型中使用json_serializable。 我成功地获取了数据,但是当转换数据列表中的json时,我得到了以下错误:未处理的异常:类型“Null”不是类型转换中类型“String”的子类型。 我不知道怎么解决。 这是我的fetch函数

Future<List<Data>> getallNews() async {
    try {
      var response = await NewsAppApi.dio.get(ALL_NEWS);
      // If the server did return a 200 OK response,
      // then parse the JSON.
      List parsed = response.data['data'];
      List<Data> _news = [];
      parsed.forEach((element) {
        print(element);
        Data n =  Data.fromJson(element);
        print(n);
        _news.add(n);
      });
      //List<Data> _news = parsed.map((json) => Data.fromJson(json)).toList();
      return _news;
    } on DioError catch (e) {
      throw showNetworkError(e);
    }
}

感谢您的帮助

您需要说明在“发布日期”和“删除日期”中收到的空值。您是否理解您发布的代码以及错误试图解释的内容


将json映射转换为类时,会发生错误。

错误很可能发生在
DateTime
字段中,因为它是数据中唯一显示
null
的字段,
DateTime.parse()
要求值不为null。这些字段可能导致错误:

//这些字段导致了错误
最后约会时间?出版日期;
最后约会时间?deletedAt;
//其他可能导致错误的字段
要发布的最终日期时间日期;
最终日期时间创建日期;
最终日期时间更新日期;
在解析它们之前进行检查,例如使用字段
datePublished

...
datePublished: (datePublished != null) ? DateTime.parse(datePublished) : null;
...

谢谢大家的帮助,我知道数据的解析部分发生了错误,但它没有连接到可为空的数据(由包生成的自动代码处理),而是连接到我忘记重命名数据模型中的键这一事实,例如:

  @JsonKey(name: 'deleted_at')
  final DateTime? deletedAt;

这就是为什么空错误

标签类是如何定义的?请分享
\u$DataFromJson(json)
...
datePublished: (datePublished != null) ? DateTime.parse(datePublished) : null;
...
  @JsonKey(name: 'deleted_at')
  final DateTime? deletedAt;