You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将数据存入EmailAddressData列表且避免被覆盖?

解决JSON数组循环存储EmailAddressData列表的问题

你当前代码的问题在于emailAddresses是单个EmailAddressData对象,每次循环执行new EmailAddressData()都会覆盖之前的对象引用,最终只能保留最后一条数据。要存储多条数据,必须用列表容器(比如ArrayList)来保存每个创建的实例。

修改后的完整业务代码

getContacts = extras.getString("getcontacts");
// 初始化列表容器,用于存储所有EmailAddressData实例
List<EmailAddressData> emailAddressList = new ArrayList<>();

try {
    JSONArray jsonArray = new JSONArray(getContacts);

    for (int i = 0; i < jsonArray.length(); i++) {
        JSONObject json = jsonArray.getJSONObject(i);
        String firstname = json.getString("firstname");
        String lastname = json.getString("lastname");
        String email = json.getString("email");
        String url = json.getString("url");

        // 拼接完整姓名,更符合实体类name字段的语义
        EmailAddressData data = new EmailAddressData(firstname + " " + lastname, email, url);
        // 将新创建的实例添加到列表中,而非覆盖单个对象
        emailAddressList.add(data);
    }
} catch (JSONException e) {
    e.printStackTrace();
}

关键修改点说明

  • 新增List<EmailAddressData>类型的容器emailAddressList,用ArrayList实现,支持动态添加多个对象。
  • 循环内创建的EmailAddressData实例不再直接赋值给单个变量,而是通过add()方法存入列表,避免覆盖。
  • 优化了姓名传入逻辑:将firstname和lastname拼接成完整姓名,更贴合实体类name字段的设计意图。

内容的提问来源于stack exchange,提问作者chris oojer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 20:36:27