Java FasterXML Jackson:JSON@符号?
我有以下JSON:Java FasterXML Jackson:JSON@符号?,java,json,jackson,Java,Json,Jackson,我有以下JSON: "segmentid": { "mot": { "@displaytype": "B", "@type": "BLT", "#text": "Buss" },... 以下问题: 什么是@符号 如果它用于特定的原因,我如何在Jackson中使用它 在本例中,它似乎只是一个普通的JSON属性 您可以在类中使用@JsonProperty注释来获取它: public YourJacksonClass { @
"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")
在您的
对象映射器中使用TypeIdResolver
时,可以将读取类型“BLT”
转换为实际类型。在这种情况下,它似乎只是一个正常的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")
在您的对象映射器中使用TypeIdResolver
时,读取类型,“BLT”
,然后可以转换为实际类型。是什么让您认为它是特定于Jackson的,而不仅仅是JSON密钥的名称?@SotiriosDelimanolis抱歉,我不清楚,但我知道它不是特定于Jackson的,它是特定于JSON的。我在问Jackson是否可以使用它。它肯定不是特定于JSON的,因为字符@
或#
没有特殊意义。我已经在Jackson的继承层次结构处理中看到了它的使用,但是没有迹象表明这就是您在这里看到的(除了它被称为类型)。或(旧版本)。另一个。是什么让你认为它是特定于杰克逊的,而不仅仅是JSON密钥的名称?@SotiriosDelimanolis抱歉,如果我不清楚,但我知道它不是特定于杰克逊的,而是特定于JSON的。我在问Jackson是否可以使用它。它肯定不是特定于JSON的,因为字符@
或#
没有特殊意义。我已经在Jackson的继承层次结构处理中看到了它的使用,但是没有迹象表明这就是您在这里看到的(除了它被称为类型)。或(旧版本)。另一个。