java - Jackson 2.x 将空对象序列化为属性

标签 java json jackson

使用 Jackson 注释,我需要为以下对象创建一个 Java POJO 以发送到 REST API。 API 需要映射到空对象的 tcp 端口列表,如下所示:

{
   "ExposedPorts": {
           "22/tcp": {},
           "80/tcp": {}
     }
}

最佳答案

使用嵌套映射来实现所需的结果。

class Ports{

    private Map<String, Map<String, String>> ports = new HashMap<String, Map<String,String>>();

    public void addPort(String port){
        ports.put(port, new HashMap<String, String>());
    }

    public Map<String, Map<String, String>> getPorts() {
        return ports;
    }

    public void setPorts(Map<String, Map<String, String>> ports) {
        this.ports = ports;
    }
}

测试用例

Ports p = new Ports();
p.addPort("22/tcp");
ObjectMapper om = new ObjectMapper();
om.writeValue(System.out, p); //Produce {"ports":{"22/tcp":{}}}

关于java - Jackson 2.x 将空对象序列化为属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33489500/

相关文章:

java - 为什么 BigDecimal ("5.50")不等于 BigDecimal ("5.5")以及如何解决这个问题?

c# - 从 json 序列化对象中删除空字符串属性

java - 避免 gson 将 json 字符串反序列化为 LinkedHashMap 类成员

java - 从End到Start解析json

java - JsonGenerator写入对象和字符串字段

java - 可以在子类中初始化静态最终字段吗?如果是这样,怎么办?

java - 使用 XSL 修改现有 DOM

java - Jackson:具有数组无效 json 形式的对象

java - 我们如何将参数和数据提供者传递给 Testng 中的相同方法

c - 不属于的随机字节,SSL_read