[英]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;
}
@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.