我有一个使用 map 的联系人模型,但返回值为空,因此导致aysnc暂停.我曾try 将这些 map 设置为返回空列表,但没有成功解决问题.

   ContactModel{
    //factory method constructor 
    emails: List<Email>.from(parsedJson['Emails'].map((x)=>Email.fromJson(x))),
    tasks:  List<Tasks>.from(parsedJson["Tasks"].map((x) => Tasks.fromJson(x))),
    notes: List<Notes>.from(parsedJson["Notes"].map((x) => Notes.fromJson(x))),

     }

错误返回为:在null上没有调用这样的方法映射.接收器无效

我试图通过这样写来解决这个问题

ContactModel{
    //factory method constructor 
    emails: List<Email>.from(parsedJson['Emails'].map((x)=>Email.fromJson(x))).toList() ?? [],
    tasks:  List<Tasks>.from(parsedJson["Tasks"].map((x) => Tasks.fromJson(x))).toList() ?? [],
    notes: List<Notes>.from(parsedJson["Notes"].map((x) => Notes.fromJson(x))).toList() ?? [],

     }

推荐答案

您可以try null次判断json,如下所示:

ContactModel{
    emails: parsedJson['Emails'] != null ? List<Email>.from(parsedJson['Emails'].map((x)=>Email.fromJson(x))).toList() : [],
    tasks: parsedJson['Tasks'] != null ?  List<Tasks>.from(parsedJson["Tasks"].map((x) => Tasks.fromJson(x))).toList() : [],
    notes:parsedJson['Notes'] != null ?  List<Notes>.from(parsedJson["Notes"].map((x) => Notes.fromJson(x))).toList() : [],
}

Json相关问答推荐

try 将文本标记放置在条形图上的同一高度

如何使用Aeson解码带有Unicode字符的JSON文件?

PowerShell脚本未按预期生成预期的JSON输出

在解码的JSON哈希中搜索数组元素

用 Jolt 替换 JSON 中的值

为什么 Django Rest API 序列化器没有正确序列化多对多字段

go 语言中的 JSON 到 XML

基于JQ中另一个对象的值 Select 对象

通过 xslt 将内部 json 转换为 xml 时遇到问题

用powershell条件解析json文件的数组对象

Nifi - 忽略(或删除)JSON 的第一个数字

使用 BASH 和 JQ 我想将 json 文件与 bash 数组进行比较

ASP.NET MVC - 将 Json 结果与 ViewResult 结合起来

Rails 中奇怪的 JSON Javascript 问题

android - 在 adb logcat 输出中格式化 json 字符串

将 JSON 对象推送到 localStorage 中的数组

在 JSON 对象中强制执行非空字段

如何安装 json gem - 无法构建 gem 原生扩展(mac 10.10)

如何使用 Json.NET 反序列化可以是两种不同数据类型的 JSON 属性

使用 JSON.NET 序列化/反序列化对象字典