这个问题在这里已有答案:
我是Java中的json和objectMapper的新手,我有一个有两个字段的类,我想创建这个类的json,但我只使用mapper属性。我怎样才能做到这一点?
public class Car{
String a;
String b;
}
ObjectMapper mapper;
String car = mapper.writeValueAsString(new Car(a, b));
json:
"{a: a, b: b}"
我想要的是:{Car: { a: a, b: b } }
通过使用JACKSON,您可以使用JsonRootName
注释实现此目的。
您可以使用您希望它作为JSON根元素的值在类上方添加它。在您的情况下,您应该执行以下操作:
@JsonRootName(value = "car")
@JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT ,use = JsonTypeInfo.Id.NAME)
public class Car{
...
}
如您所见,我们还添加了JsonTypeInfo
注释,这是必要的,因为它指示应该使用哪种类型的包装。
此外,如果您希望根字段具有与类名相同的值,您可以摆脱@JsonRootName(value = "Car")
并仅使用@JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT ,use = JsonTypeInfo.Id.NAME)
。