当前位置: 首页 > 知识库问答 >
问题:

颤振JSON响应值null处理

叶卓君
2023-03-14

我有一个联系人列表,显示在API响应的Future Builder列表视图中,我在服务器中总共有23个联系人,但我想去掉其名字和姓氏为NULL的所有联系人。

在处理空异常之前:单击此处

代码:

                      Container(
                          height: 50,
                          color: Colors.white,
                          child: Column(
                            mainAxisAlignment: MainAxisAlignment.start,
                            crossAxisAlignment:
                                CrossAxisAlignment.start,
                            children: <Widget>[
                              contact.fields.all.firstname == null
                                  ? Container()
                                  : Text(
                                      contact.fields.all.firstname +
                                          " " +
                                          contact.fields.all.lastname,
                                      style: TextStyle(fontSize: 16),
                                    ),
                            ],
                          ),
                        ),

处理空异常后:单击此处

正如您从添加的代码和图像中看到的,为了处理异常,我只为所有名为null的联系人返回了一个空的容器,但现在我想更改它。我如何才能使那些名为firstname和lastname的联系人不再显示在屏幕上,而不是返回一个空容器?

共有1个答案

羿博延
2023-03-14

在返回结果之前,可以从列表中删除null元素

// contacts = jsonDecode(someApiCall());
   contacts.removeWhere((contact) => contact.fields.all.firstname == null && field.lastname == null);

return contacts;

如果您的数据是地图,则可以使用

myMap.removeWhere((key, value) => myMap[key] == null);
 类似资料:
  • 我对颤振世界还不熟悉,我犯了一个我不能完全理解的错误。 这是我的netwrok处理程序代码 这是我的代码,我调用网络处理器的获取方法 我得到了这个错误 [错误:flatter/lib/ui/ui\u dart\u state.cc(209)]未处理的异常:类型'\u InternalLinkedHashMap 谁能帮帮我吗?

  • REST_API提供如下JSON对象: 问题:我如何用Dart解析它?我没有让它运行。我的主要问题是,任何使用json的方法。解码将删除所有注释,因此字符串不再是字符串。 当然,我可以在开头和结尾去掉方括号,但这不是我所说的好编码。 也许你们中的一些人可以帮忙;-) 祝你有美好的一天!

  • 在json中传递变量中的值时出现以下问题。encode没有得到例外的响应,但是我在传递值时没有得到正确的响应,我尝试使用map和不同的头无法得到确切的问题。 > 不工作 字符串getvalue=“响应值”;var_body=json。编码({“context”:getvalue}); var res=等待http。post(链接,标题:{“内容类型”:“应用程序/json”,},正文:\正文);

  • 我可以使用“startAfter”和“limit”进行分页,但它有错误。 例如,在Firestore DB中,我有7条记录: 当页面大小为5时,第一页就可以了,因为我使用了: 它给了我1-5项。 当它加载第二页时,我使用了: 问题是第二页结果只有item7,item6消失了。“开始”也有同样的问题。 真希望它有“抵消”功能,有人有解决办法吗?

  • 问题内容: 我有一个页面作为HtmlUnit中的UnexpectedPage返回,响应为JSON。我可以使用HTMLUnit进行解析还是需要一个额外的库? 问题答案: HtmlUnit不支持它。它最多可以执行JS函数。您需要事先检查返回的响应是否匹配,然后使用合适的工具进行解析。Google Gson 在此方面很有用。 如果JSON结构是事先已知的,则您甚至可以使用Gson将其转换为完全有价值的J

  • 注意:同样的代码,当使用在另一个帐户的firebase工作,我似乎不能解决问题。