我正在处理一个由 jhipster 生成的项目。它是一个微服务架构项目。
在我的实体类中,属性是用驼峰命名的。因此,当我创建休息服务时,它会给我 json,其中 json 属性名称与实体属性相同。
实体类
@Entity
@Table(name = "ebook")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
@Document(indexName = "ebook")
public class Ebook implements Serializable {
private Long id;
private String nameBangla;
private String nameEnglish;
Json 响应
{
"id": 0,
"nameBangla": "string",
"nameEnglish": "string"
}
我希望我的实体属性是驼峰式,但在 json 响应中它是蛇形。那就是我不想更改我的实体类,但我想更改我的 json 响应,如下所示
{
"id": 0,
"name_bangla": "string",
"name_english": "string"
}
最佳答案
你有两种可能:
明确命名您的属性:
@JsonProperty("name_bangla")
private String nameBangla;
@JsonProperty("name_english")
private String nameEnglish;
或更改 jackson(用于反序列化)的工作方式:
Jackson 有一个名为 PropertyNamingStrategy.SNAKE_CASE
的设置
您可以为 jackson objectmapper 设置它。
因此,您需要为此配置 Jackson,例如通过添加您自己的对象映射器:
@Configuration
public class JacksonConfiguration {
@Bean
public Jackson2ObjectMapperBuilder jackson2ObjectMapperBuilder() {
return new Jackson2ObjectMapperBuilder().propertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE)
}
}
据我所知,在旧版本的 JHipster 中,已经有一个 JacksonConfiguration
来配置 JSR310 时间模块,但后来被删除了......
将此添加到您的 application.yml 也应该有效:
spring.jackson.property-naming-strategy=SNAKE_CASE
关于java - 在 jhipster 项目中将实体属性 Camel 大小写转换为 json 中的蛇大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40782685/