【问题标题】:Problems with sonar changing the names of an object in REST calls by Jackson JSON声纳在杰克逊 JSON 的 REST 调用中更改对象名称的问题
【发布时间】:2019-07-24 09:00:20
【问题描述】:

我有一个对象,在它的字段中,某些名称必须包含“_”,例如 local_PC 而不是 localPC

我遇到的问题是我需要它是local_PC,当调用我的应用程序时,他们会发送该字段,我无法更改它,但声纳会启动错误,因为它必须是 localPC

杰克逊有什么办法可以控制它?

实现@jsonproperty 只允许我更改输出中的名称,但不能更改控制器输入中的名称

@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
@AllArgsConstructor
public class Example{

 private String local_PC;

}

【问题讨论】:

    标签: java json spring rest


    【解决方案1】:

    使用@JsonAlias

    @JsonAlias 在 Jackson 2.9 版本中引入。 @JsonAlias 为反序列化期间要接受的属性定义一个或多个替代名称,即将 JSON 数据设置为 Java 对象。但是在序列化时,即从 Java 对象获取 JSON 时,只使用实际的逻辑属性名称而不是别名。 @JsonAlias

    @JsonAlias({"local_PC", "localPC"})
    private String local_PC;
    

    【讨论】:

    • 正是我所需要的,非常感谢!
    猜你喜欢
    • 2014-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-14
    • 2014-12-18
    • 1970-01-01
    相关资源
    最近更新 更多