簡體   English   中英

傑克遜 - 將java對象轉換為json - 需要所有關鍵鍵為大寫

[英]Jackson - converting java object to json - Need all key keys to upper case

需要你的幫助將java對象轉換為json。 當前json結果顯示小寫字母的所有鍵,我需要它是大寫的。

ObjectMapper mapper = new ObjectMapper();
Writer strWriter = new StringWriter();
mapper.writeValue(strWriter, obj);
String jsonString= strWriter.toString();

結果是

[{"flags":"1","name":"Peter","location":"London","startDate":"2012-01-06 00:00"}]

但我想要這樣的結果(所有關鍵鍵值應該是大寫的):

[{"FLAGS":"YU","NAME":"Peter","LOCATION":"London","STARTDATE":"2012-01-06 00:00"}]

並且也可以這樣(大寫的關鍵第一個字母):

[{"Flags":"1","Name":"Peter","Location":"London","StartDate":"2012-01-06 00:00"}]

誰可以幫我這個事。

提前致謝。

傑克遜有多種方法可以做到這一點。

注釋

您可以使用字段或getter方法上的@JsonProperty 注釋來注釋對象。

例:

@JsonProperty("Name")
public final String name;

@JsonProperty("Location")
public String getLocation() {
  return location;
}

實現JsonSerializableWithType接口

@Override
public void serialize(final JsonGenerator jG, final SerializerProvider p)
    throws IOException, JsonProcessingException
{
    serializeWithType(jG, p, null);
}

@Override
public void serializeWithType(final JsonGenerator jG, final SerializerProvider p, final TypeSerializer typeSer)
    throws IOException, JsonProcessingException
{
    // here you can do your own serialization
}

我建議在類級別使用@JsonNaming注釋。

然而,afaik沒有適合您的全部大寫需求的策略。 但你可以寫自己的。

在我的情況下,我需要第一個字符大寫。 所以我使用了現有的@JsonNaming(value = UpperCamelCaseStrategy.class)

暫無
暫無

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

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