簡體   English   中英

在jhipster項目中將實體屬性駝峰案例轉換為json中的蛇案例

[英]Convert entity property camel case to snake case in json in jhipster project

我正在使用jhipster生成的項目。 這是一個微服務架構項目。

在我的實體類中,屬性以camel case命名。 因此,當我創建一個休息服務時,它給了我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

您還可以使用注釋來定義每個類的命名策略。

Kotlin的一個小例子:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM