[英]FasterXML Jackson: The JSON @ symbol?
我有以下JSON:
"segmentid": {
"mot": {
"@displaytype": "B",
"@type": "BLT",
"#text": "Buss"
},...
以下问题:
@
表示法是什么? 在这种情况下,这似乎只是正常的JSON属性。
您可以通过在类中使用@JsonProperty
批注来获取它:
public YourJacksonClass {
@JsonProperty("@displayType")
private String displayType;
@JsonProperty("@type")
private String type;
@JsonProperty("#text")
private String text;
}
或者,如果您使用的是readTree
方法,该方法返回JsonNode
,则可以正常访问它:
JsonNode node = mapper.readTree(...);
String type = node.get("segmentid").get("mot").get("@type");
当需要将类型信息与对象一起序列化时,通常使用带有'@'前缀的属性。
@JsonTypeInfo(use=JsonTypeInfo.Id.CLASS, include=JsonTypeInfo.As.PROPERTY, property="@type")
然后,在ObjectMapper
使用TypeIdResolver
时,可以将读取类型"BLT"
转换为实际类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.