为了账号安全,请及时绑定邮箱和手机立即绑定

通过组合来自两个类的字段来创建 JSON

通过组合来自两个类的字段来创建 JSON

凤凰求蛊 2022-06-30 11:15:20
我有两个班:A班,B班class A{ private int F1; private String F2;}class B{ private int F3; private String F4; private String F5;}我想要这样的 JSON:{   "F1": 123   "F2": "ABC"   "F3": 456   "F4": "CDE"   "F5": "FGH"}我正在使用 springboot,它会在我从 @RestController 返回对象后立即创建 JSON。如何使用这两个类实现上述 json。注意:1.)我已经知道通过使用 class A extends B ,我可以实现这一点,但我正在寻找一些基于 spring 的方法来实现这一点2.) 在 B 类中使用 @Embeddable 然后在 A 类中创建引用会在 JSON 中创建额外的标签 B,如下所示:{   "F1": 123   "F2": "ABC"    b: {          "F3": 456          "F4": "CDE"          "F5": "FGH"    }}
查看完整描述

2 回答

?
温温酱

TA贡献1752条经验 获得超4个赞

http://fasterxml.github.io/jackson-annotations/javadoc/2.0.0/com/fasterxml/jackson/annotation/JsonUnwrapped.html


public class A{


    @JsonUnwrapped

    private B b;


    public User getB() ...

}


查看完整回答
反对 回复 2022-06-30
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

创建一个委托类AB:


public final class AB {

    private final A a;

    private final B b;

    public AB(A a, B b) {

        this.a = a;

        this.b = b;

    }

    // Delegation methods to A

    public int    getF1() { return this.a.getF1(); }

    public String getF2() { return this.a.getF2(); }

    // Delegation methods to B

    public int    getF3() { return this.b.getF3(); }

    public String getF4() { return this.b.getF4(); }

    public String getF5() { return this.b.getF5(); }

}


查看完整回答
反对 回复 2022-06-30
  • 2 回答
  • 0 关注
  • 114 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信