我在尝试将包含under_score属性的JSON响应转换为具有lowerCamelCase属性的DTO时遇到了一些困难。
例如JSON:
{
"promoted_by": "",
"parent": "",
"caused_by": "jenkins",
"watch_list": "prod",
"u_automation": "deep",
"upon_reject": "cancel"
}
DTO示例:
@Data
public class TicketDTO {
private String promotedBy;
private String parent;
private String causedBy;
private String watchList;
private String uAutomation;
private String uponReject;
}
Map器:
@Mapper(componentModel = "spring")
public interface ITicketMapper {
default TicketDTO toDTO(JsonObject ticket) {
Gson gson = new GsonBuilder()
.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE)
.create();
return gson.fromJson(incident, TicketDTO.class);
}
}
这个例子当然不起作用,我想知道是否有可能用Gson来做这个转换。
谢谢你的帮助。
1条答案
按热度按时间qvtsj1bj1#
您应该使用LOWER_CASE_WITH_UNDERSCORES
在Gson中使用这个命名策略会将Java字段名从 Camel 形修改为小写的字段名,其中每个单词用下划线(_)分隔。
UPPER_CAMEL_CASE用于不同的目的
在Gson中使用此命名策略将确保在序列化为JSON格式时Java字段名的第一个“字母”大写。