如何在Jersey / Jackson中创建用于设置对象的自定义设置器?

哈桑

我有一个称为的实体Checkout,其中有一个用户和一个项目。因此,当用户想要创建一个新的签出对象时,他们POST将“ / checkout”。现在,我正在考虑设置用户和项目,用户将改为包括用户名和序列号,例如:

{
    "id": "1",
    "user": "hassan",
    "item": "sdf2ljt234jt09jsd"
}

然后,我将在Checkout类中编写使用String而不是Users and Items的自定义setter:

public void setUser(String username) {
    this.user = ...
}

但是泽西从来没有打电话给我的二传手。用户属性和项目属性都保持为空,我不确定为什么。如果这不是用Jersey / Jackson设置对象的正确方法,我还有其他尝试吗?

埃里克·吉莱斯皮

您可以@JsonDeserialize用来指定一个构建器类,该类可以包含从字符串到用户或项目的自定义逻辑:

@JsonDeserialize(builder = Checkout.Builder.class)
public class Checkout {
    private Long id;
    private User user;
    private Item item;

    // getters and setters

    public static class Builder {
        private Long id;
        private String username;
        private String serialNumber;

        @JsonProperty("id")
        public Builder setId(Long id) {
            this.id = id;
            return this;
        }

        @JsonProperty("user")
        public Builder setUsername(String username) {
            this.username = username;
            return this;
        }

        @JsonProperty("item")
        public Builder setSerialNumber(String serialNumber) {
            this.serialNumber = serialNumber;
            return this;
        }

        public Checkout build() {
            Checkout checkout = new Checkout();
            checkout.setId(id);
            checkout.setUser(/* lookup user by username */);
            checkout.setItem(/* lookup item by serialNumber */);
            return checkout;
        }
    }
}

请注意在@JsonPropertyBuilder类的每个设置器上的用法,以及它们如何使用JSON中属性的名称。确保您的JSON结构正确映射到构建器字段中非常重要。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在 Leaflet 中创建自定义设置控件

来自分类Dev

如何在MATLAB 2013b中创建自定义设置器方法?

来自分类Dev

如何使用REST在Camel w / o spring中设置全局自定义Jackson序列化器

来自分类Dev

如何在Jackson中为通用类型创建自定义解串器?

来自分类Dev

如何在Worklight中的用户身份对象中设置和检索自定义属性?

来自分类Dev

如何在C#中创建用于描述对象的自定义语法?

来自分类Dev

如何在C#中创建用于描述对象的自定义语法?

来自分类Dev

android-如何在paint对象中设置自定义字体?

来自分类Dev

如何在 c# WPF 中为自定义形状对象设置动画

来自分类Dev

Dart Polymer:创建时如何在自定义中设置非字符串字段

来自分类Dev

如何在Robot Framework中创建自定义测试用例设置

来自分类常见问题

如何在自定义长时间运行的计时器作业中设置进度

来自分类Dev

如何在自定义设置器中添加活动记录验证错误?

来自分类Dev

EditorConfig-如何在自定义分析器中访问editorconfig规则设置

来自分类Dev

如何在自定义长时间运行的计时器作业中设置进度

来自分类Dev

如何在CHEditor中设置浏览服务器的自定义路径

来自分类Dev

如何在视图控制器的背景中设置自定义颜色

来自分类常见问题

如何在排球请求中设置自定义标题

来自分类Dev

如何在图表中设置自定义填充颜色

来自分类Dev

如何在自定义WebViewPage中设置属性?

来自分类Dev

如何在Maven中设置JDK的自定义版本?

来自分类Dev

如何在CreateJs中设置自定义光标?

来自分类Dev

如何在JCalendar中设置自定义星期开始?

来自分类Dev

如何在自定义通知textview中设置值

来自分类Dev

如何在HTML中设置自定义tabindex

来自分类Dev

如何在Helmchart中设置自定义发布名称

来自分类Dev

如何在SwiftUI中设置自定义环境键?

来自分类Dev

如何在自定义HttpMessageHandler中设置属性?

来自分类Dev

如何在Flutter中设置自定义FontWeight值

Related 相关文章

  1. 1

    如何在 Leaflet 中创建自定义设置控件

  2. 2

    如何在MATLAB 2013b中创建自定义设置器方法?

  3. 3

    如何使用REST在Camel w / o spring中设置全局自定义Jackson序列化器

  4. 4

    如何在Jackson中为通用类型创建自定义解串器?

  5. 5

    如何在Worklight中的用户身份对象中设置和检索自定义属性?

  6. 6

    如何在C#中创建用于描述对象的自定义语法?

  7. 7

    如何在C#中创建用于描述对象的自定义语法?

  8. 8

    android-如何在paint对象中设置自定义字体?

  9. 9

    如何在 c# WPF 中为自定义形状对象设置动画

  10. 10

    Dart Polymer:创建时如何在自定义中设置非字符串字段

  11. 11

    如何在Robot Framework中创建自定义测试用例设置

  12. 12

    如何在自定义长时间运行的计时器作业中设置进度

  13. 13

    如何在自定义设置器中添加活动记录验证错误?

  14. 14

    EditorConfig-如何在自定义分析器中访问editorconfig规则设置

  15. 15

    如何在自定义长时间运行的计时器作业中设置进度

  16. 16

    如何在CHEditor中设置浏览服务器的自定义路径

  17. 17

    如何在视图控制器的背景中设置自定义颜色

  18. 18

    如何在排球请求中设置自定义标题

  19. 19

    如何在图表中设置自定义填充颜色

  20. 20

    如何在自定义WebViewPage中设置属性?

  21. 21

    如何在Maven中设置JDK的自定义版本?

  22. 22

    如何在CreateJs中设置自定义光标?

  23. 23

    如何在JCalendar中设置自定义星期开始?

  24. 24

    如何在自定义通知textview中设置值

  25. 25

    如何在HTML中设置自定义tabindex

  26. 26

    如何在Helmchart中设置自定义发布名称

  27. 27

    如何在SwiftUI中设置自定义环境键?

  28. 28

    如何在自定义HttpMessageHandler中设置属性?

  29. 29

    如何在Flutter中设置自定义FontWeight值

热门标签

归档