2016-12-02 6 views
0

私は以下のPOJOを持っています。私の空港に関するデータが入っています。@JsonPropertyはJSONからの逆シリアル化にのみ使用され、JSONへのserilizationではありません

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

    @JsonProperty("AirportID") 
    Integer airportId; 
} 

POJOオブジェクトは、APIから受け取ったJSONを使用して作成されます。 APIサンプルの出力は以下のようになります。

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

マイコードは

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

Iしかし(POJOなど)キャメルケースになるように出力を必要とする次のように

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, 
} 
] 

Isとにかく@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

辞書にデシリアライズして、すべてのキーをラクダケースにすることができます。その後、意図どおりに使用することができます。

関連する問題