繁体   English   中英

FasterXML Jackson:JSON @符号?

[英]FasterXML Jackson: The JSON @ symbol?

我有以下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;
}

或者,如果您使用的是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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM