2016-12-02 121 views
0

我有以下POJO。它包含有關我的機場的數據。@JsonProperty僅用於從JSON反序列化,而不是用於JSON的消解

class MyClass 
{ 
    @JsonProperty("AirportCode") 
    String airportCode; 

    @JsonProperty("AirportID") 
    Integer airportId; 
} 

POJO對象是使用從API接收到的JSON創建的。 API示例輸出如下所示。

[ 
{ 
    "AirportCode": "BBA", 
    "AirportID": 4276802, 
}, 
{ 
    "AirportCode": "SCQ", 
    "AirportID": 5325651, 
} 
] 

我的代碼是爲用作如下

void func() 
{ 
    //Get JSON from API and convert to POJO 
    //Do some processing on the POJO 
    //Convert POJO into JSON and write to file 
} 

該文件內容如下

[ 
{ 
    "AirportCode": "BBA-IN", 
    "AirportID": 4276802, 
}, 
{ 
    "AirportCode": "SCQ-USA", 
    "AirportID": 5325651, 
} 
] 

我但是所需要的輸出是在駱駝的情況下(如POJO)

[ 
{ 
    "airportCode": "BBA-IN", 
    "airportId": 4276802, 
}, 
{ 
    "airportCode": "SCQ-USA", 
    "airportId": 5325651, 
} 
] 

是無論如何,我可以得到@JsonProperty僅在對POJO進行反序列化的過程中才能得到尊重,而不是在序列化到JSON的過程中呢?

回答

1

你有沒有嘗試使用不同的jsonProperty值來註釋getter和setter?直接它不會工作,但如果你改變getter/setter的名字,它應該像兩個方法一樣被處理,就好像它們屬於不同的字段一樣。

事情是這樣的:

class MyClass { 

    String airportCode; 

    Integer airportId; 

    @JsonProperty("airportCode") 
    public String getAirportCodeForJson() { 
     return airportCode; 
    } 

    @JsonProperty("AirportCode") 
    public void setAirportCode(String airportCode) { 
     this.airportCode = airportCode; 
    } 

    @JsonProperty("airportID") 
    public Integer getAirportIdForJson() { 
     return airportId; 
    } 

    @JsonProperty("AirportID") 
    public void setAirportId(Integer airportId) { 
     this.airportId = airportId; 
    } 

} 
+0

謝謝,這工作 –

0

你可以反序列化成一個字典,然後駱駝案例所有的鍵。之後,您可以按預期使用它。