我有一个分类界面,带有Visibility.NONE的@JsonAutoDetect注释,所以我可以选择使用@JsonSerialize注释序列化的各个getter
@JsonAutoDetect(getterVisibility = Visibility.NONE)
public interface Classified {
@JsonSerialize
String getModel();
直到这里没有问题,当我从@Controller返回带有@ResponseBody注释的分类时,它会返回预期的JSON:
@RequestMapping(value = "/classified/{idClassified}", method = RequestMethod.GET)
@ResponseBody
public final Classified getClassified(@PathVariable final int idClassified) {
然而,当我返回分类列表时,我想返回一小组getter,而使用以下签名,显然它会返回所有标记的getter:
@RequestMapping(value = "/classified", method = RequestMethod.GET)
@ResponseBody
public final List<Classified> searchClassified(@RequestParam final int idBrand,
@RequestParam final String priceMax, @RequestParam final int page) {
我不知道如何在列表的每个项目中返回较小的分类getter子集。
答案 0 :(得分:1)
“返回一小组getter”
如果您的意思是减少列表中的项目数,请更改控制器的searchClassified方法中的业务逻辑。
如果您的意思是减少每个项目上可用的公共getter方法的数量,您可以创建一个仅实现原始项目getter的子集的接口,并返回它们的列表。
答案 1 :(得分:1)
查看“filtering properties”,其中列出了更改序列化内容的多种方法。我猜Json Views可能是最简单的;可以使用一个较小的视图,然后在没有定义视图时默认为“all”模式(默认为序列化所有属性)。