【问题标题】:Map JSON Response to POJO (with different names)将 JSON 响应映射到 POJO(使用不同的名称)
【发布时间】:2023-04-08 23:36:02
【问题描述】:

我知道有很多关于类似问题的帖子,但我的似乎有点不同。我正在阅读一堆 JSON 并想从中构建 POJO,但我不想使用 JSON 结果的名称。有没有办法将 JSON 中的元素名称“映射”到我的 POJO 中的属性(可能使用 gson 或 Jackson)?

值得一提的是,这个应用程序是为 Android 构建的。

提前致谢!

【问题讨论】:

    标签: java android json gson jackson


    【解决方案1】:

    如果您使用Gson,您可以将属性附加到您的对象,如下所示:

    @SerializedName("ServicesResult")
    public String services;
    

    其中“ServicesResult”是 JSON 中元素的实际名称。

    【讨论】:

      【解决方案2】:

      有了杰克逊,您有多种选择:

      • 使用@JsonProperty("name")注解表示要在JSON中使用的名称,直接添加或使用mix-in注解(外部)
      • 指定 PropertyNamingStrategy 从“Java 名称”转换为“JSON 名称”(1.9 捆绑了默认的 javac 样式转换器)
      • 修改 AnnotationIntrospector 以使用注释以外的其他机制更改名称

      【讨论】:

        【解决方案3】:

        Jackson 还将解释 Basic 包 javax.xml.bind.annotation

        如果您使用这些注释,您可以轻松地在 Json/XML 之间移动

        【讨论】:

          猜你喜欢
          • 2014-04-12
          • 1970-01-01
          • 2021-08-25
          • 2019-02-12
          • 1970-01-01
          • 2011-09-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多