jackson – 将java对象转换为json – 需要所有关键键到大写

需要你的帮助将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"}] 

谁可以帮我这个事。

提前致谢。

jackson有多种方法可以做到这一点。

注释

您可以使用字段或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)