在JYSTER项目中将实体属性骆驼案例转换为json中的蛇情况

我正在使用jijster生成的项目。 这是一个微服务架构项目。

在我的实体类中,属性是用骆驼命名的。 所以当我创建一个rest服务时,它给了我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(用于de / serialization)的工作原理:

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 

您也可以使用注释来定义每个类的命名策略。

Kotlin的小例子:

 @JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy::class) data class Specialization(val altUrl: String, val altId: Int, val altName: String) 

@JsonProperty没有与jackson2.2工作。 我不得不重新命名我的getter方法,使其工作。 例如:

 public String getName_english() { return nameEnglish; } public String getName_bangla() { return nameBangla; }