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

使用Jackson序列化POJO时,如何生成"Images": [ {} ]格式结构?

解决Jackson序列化生成"Images": [ {} ]的问题

嘿,我来帮你搞定这个Jackson序列化的问题!你想要的"Images": [ {} ]其实是一个包含空JSON对象的数组,而你之前的两种尝试分别生成了空数组和包含空字符串数组的数组,方向不对,我给你两种可行的方案:

方案一:自定义空对象类

因为空的JSON对象{}对应的Java类型是一个没有任何字段的类,我们可以先定义一个这样的空类,然后用它的列表来实现需求:

  1. 首先创建一个空的POJO类:
public class EmptyJsonObject {
    // 不需要任何字段和方法
}
  1. 在你的主POJO中定义Images字段,并添加一个空对象实例:
public class YourMainPojo {
    // 定义为EmptyJsonObject的列表
    public ArrayList<EmptyJsonObject> Images = new ArrayList<>();

    public YourMainPojo() {
        // 添加一个空对象到列表中
        Images.add(new EmptyJsonObject());
    }
}

这样Jackson序列化后,就会得到"Images": [ {} ]的结构。

方案二:使用空HashMap替代自定义类

如果不想额外创建空类,也可以用Map<String, Object>来代替,因为Jackson会把空的Map序列化成{}:

public class YourMainPojo {
    // 定义为Map的列表
    public ArrayList<Map<String, Object>> Images = new ArrayList<>();

    public YourMainPojo() {
        // 添加一个空的HashMap到列表中
        Images.add(new HashMap<>());
    }
}

这种方式和方案一效果完全一样,序列化后同样会生成"Images": [ {} ]。

补充说明

如果你不想在构造函数里添加元素,也可以直接在字段初始化的时候完成:

// 方案一的初始化方式
public ArrayList<EmptyJsonObject> Images = new ArrayList<>(List.of(new EmptyJsonObject()));

// 方案二的初始化方式
public ArrayList<Map<String, Object>> Images = new ArrayList<>(List.of(new HashMap<>()));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:36:28