rest - 我怎样才能用杰克逊只返回一个内部对象的几个 Json 字段
问题描述
我正在使用杰克逊 + 弹簧 RestControlles
假设我有 3 节课
class Card {
String id;
String pan;
String holder;
String expiry;
}
class CardProfile {
String id;
Card card;
...
}
class Recipient {
String name;
Card card;
...
}
因此,当我序列化 CardProfile 对象时,我希望对象卡的所有字段在结果 json 中都是百分比。
但是在 Recipient object 的情况下,Json 必须只有 object card 的一部分(例如:pan, holder)。有没有办法用不同的字段集在 json 中呈现 Card 对象?
使用 @JsonIgnore 之类的注释将从这两种情况中删除字段。
谢谢。
解决方案
再想一想——这种方法是否可扩展?如果您再次需要类似的东西怎么办?为什么不依赖继承并创建一个基类和多个具有您感兴趣的属性的子类?
class Card{
// bare min attribute
.....
}
class SubCard1 extends Card{
//add more attribute
.....
}
class SubCard2 extends Card{
//add more attribute
.....
}
根据您的需要使用 SubCard1 或 SubCard2?同样可以用于其他类。如果这更动态 - 查看设计模式。
推荐阅读
- python - 如何获得学期平均值
- ansible - Mikrotik 操作系统命令
- c - GTK3.0+ App UI 冻结问题。线程问题
- jquery - 如何在不刷新整个页面的情况下在 PHP/WordPress 中执行切换功能 jQuery?
- ios - (Swift) 如何在一个文件夹中创建子文件夹
- java - 为 String.format() 使用可变长度参数列表
- javascript - 表格行的验证
- python - 用逗号将模型的 CharField 拆分为两个变量
- c# - 更新单元格值会破坏行样式。非营利组织,C#
- python - 为什么 scipy.optimize.mminimize 不使用提供的初始猜测