java - FasterXML jackson : The JSON @ symbol?

标签 java json jackson

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

或者,如果您使用返回 JsonNodereadTree 方法,只需正常访问它:

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/

相关文章:

scala - NoSuchMethodError : com. fasterxml.jackson.datatype.jsr310.deser.JSR310DateTimeDeserializerBase.findFormatOverrides on Databricks

java - 将应用程序转换为 MVC 架构

java - 在 Maven 上按顺序强制进行集成参数化测试

python - 递归访问嵌套字典的路径和值

java - Jackson 从 json 字符串转换为 Java 对象会产生默认对象

java - 使用jackson将Json对象转换为java对象

java - JFreeChart 每个系列的独立渲染器

java - 康威生命游戏迭代不起作用

javascript - list : property 'start_url' ignored, 应与文档同源

javascript - JSON unicode字符转换