将类的名称添加到json [duplicate]

问题描述 投票:-1回答:1

这个问题在这里已有答案:

我是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 } }

java json objectmapper
1个回答
1
投票

通过使用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)

© www.soinside.com 2019 - 2024. All rights reserved.