Flutter网络请求:如何动态构建mailList数组避免空值提交
解决方案
你之前的代码问题在于只把邮箱字符串添加到了列表中,但接口需要的是包含mail字段的对象数组,而非纯字符串数组,而且没有将构建好的列表替换原JSON里的mailList字段。
正确的写法如下:
// 初始化空列表,用于存放邮箱对象 List<Map<String, String>> mailList = []; // 第一个邮箱非空时添加(如果是必填项也可以省略判断,直接添加) if (_email.text.isNotEmpty) { mailList.add({"mail": _email.text}); } // 第二个邮箱非空时才添加 if (_emailTwo.text.isNotEmpty) { mailList.add({"mail": _emailTwo.text}); } // 构建最终的请求数据 final requestData = { "taxpayer": _person, "customerType": _dropdownTypeClient, "rfc": _rfc.text, "name": _name.text, "fatherSurname": _firstName.text, "motherSurname": _lastName.text, "businessName": _razonSocial.text, "contact": _contact.text, "phone": _phone.text, "cell": _cellphone.text, "taxRegime": _dropdownTax, "mailList": mailList, // 替换为动态构建的非空邮箱列表 "workType": _dropdownWorkType, "howToContact": _dropdownHowToContact };
这样就能保证mailList里只包含非空的邮箱对象,不会把空值提交到数据库。
内容的提问来源于stack exchange,提问作者Kevin Mendoza
相关产品推荐
相关产品推荐

