有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java当JsonProperty与属性不同时,如何打印对象json?

如果我有任何课程,例如:


import com.fasterxml.jackson.annotation.JsonProperty;

class Person {

    @JsonProperty("alternativeName")
    private String name;
}

我有一个带有name = "test"的实例

我想在日志中记录:

Object Person(alternativeName=test, ... [other JsonProperty..])

如何使用JsonProperty而不是属性获取该对象?有什么办法得到它吗


共 (1) 个答案

  1. # 1 楼答案

    它在日志中的显示方式取决于toString()方法。它通常包含属性的名称,不处理@JsonProperty注释。有两种方法可以做到这一点:

    1. 更改toString()实现,使其打印alternativeName而不是name。这样做的缺点是,如果您想将alternativeName更改为其他内容,则需要调整两个String
    2. 在日志语句中使用ObjectMapperwriteValueAsString()方法。这将考虑@JsonProperty,但它将Person记录为JSON,而不是常规POJO(如您在示例中所描述的)
    现在你需要妥协,选择你认为最好的方法。