我有以下 JSON:
"segmentid": {
"mot": {
"@displaytype": "B",
"@type": "BLT",
"#text": "Buss"
},...
以下问题:
@
符号有什么用?- 如果出于特定原因使用它,我该如何在 Jackson 中使用它?
最佳答案
在这种情况下,它似乎只是一个普通的 JSON 属性。
你可以通过在类中使用 @JsonProperty
注解来获取它:
public YourJacksonClass {
@JsonProperty("@displayType")
private String displayType;
@JsonProperty("@type")
private String type;
@JsonProperty("#text")
private String text;
}
或者,如果您使用返回 JsonNode
的 readTree
方法,只需正常访问它:
JsonNode node = mapper.readTree(...);
String type = node.get("segmentid").get("mot").get("@type");
当需要将类型信息与对象一起序列化时,使用“@”前缀的属性也很常见。
@JsonTypeInfo(use=JsonTypeInfo.Id.CLASS, include=JsonTypeInfo.As.PROPERTY, property="@type")
在您的例子中,读取类型 "BLT"
可以在您的 ObjectMapper
中使用 TypeIdResolver
时转换为实际类型.
关于java - FasterXML jackson : The JSON @ symbol?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28999427/