gpt4 book ai didi

java - 如何将 JSON key 从 POJO 的 camelCase 更改为 snake case?

转载 作者:行者123 更新时间:2023-12-05 03:34:58 25 4
gpt4 key购买 nike

我正在使用 Wiremock 进行测试,我有以下 POJO 示例:

 @Data
public class DataResponse {
private Supply supply;
private static class Supply {
private List<TimeSeries> timeSeries;
}
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
public static class TimeSeries {
private LocalDate date;
}
}

我正在 stub 一些外部 API,它应该以 json 的形式响应这个 POJO:

DataResponse dataResponse = DataResponse.builder()
.supply(DataResponse.Supply.builder()
.timeSeries(List.of(
DataResponse.TimeSeries.builder()
.date("2021-11-16")
build()
))
.build()
.build()

String jsonDataResponse = mapper.writeValueAsString(dataResponse); //mapper is instance of ObjectMapper

stubFor(WireMock.get(urlEqualTo("/someUrl"))
.willReturn(aResponse()
.withBody(jsonDataResponse)));

问题是当我使用 ObjectMapper 进行序列化时,我得到的是“timeSeries”而不是“time_series”。有什么方法可以仅通过更改测试文件来获得正确的 JSON 字符串格式?

最佳答案

timeSeriesSupply的字段,你应该改变@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)的位置,移动到供应类如下

    @Data
public class DataResponse {
private Supply supply;
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
private static class Supply {
private List<TimeSeries> timeSeries;
}
public static class TimeSeries {
private LocalDate date;
}
}

关于java - 如何将 JSON key 从 POJO 的 camelCase 更改为 snake case?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69999227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com