json序列化:jackson将驼峰命名转下划线并大写

 

Java类

复制代码
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
public class OrderDetailParam {
    @JsonProperty("serviceCode")
    private String serviceCode; 
    @JsonProperty("target")
    private String target;
    @JsonProperty("source")
    private String source;
    private OrderDetailDataParam data;

    @Builder
    @AllArgsConstructor
    @NoArgsConstructor
    @Data
    public static class YxOrderDetailDataParam {
        @JsonProperty("APP_NO")
        private String appNo;
        @JsonProperty("ORG_NO")
        private String orgNo;
        @JsonProperty("CONS_NO")
        private String consNo;
    }
}
复制代码

 

main方法

复制代码
       var param = OrderDetailParam.builder()
                .serviceCode("20221")
                .source("")
                .target("")
                .data(OrderDetailParam.OrderDetailDataParam.builder().orgNo("122222").appNo("312302270004011").build())
                .build();
        ObjectMapper objectMapper = new ObjectMapper(); // 创建Jackson ObjectMapper对象
        objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE); //设置Jackson PropertyNamingStrategy为SNAKE_CASE
        String paramJsonStr = objectMapper.writeValueAsString(param); // 将Java对象转换为JSON字符串
        System.out.println(paramJsonStr);
复制代码

结果

{"data":{"APP_NO":"22222222","ORG_NO":"11111","CONS_NO":null},"serviceCode":"11111","target":"","source":""}

 

posted @   Peter.Jones  阅读(2478)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
历史上的今天:
2021-04-23 断言和异常
2019-04-23 Redis 在Linux配置文件配置说明
点击右上角即可分享
微信分享提示