首页 文章

Spring MVC和Jackson JSON序列化

提问于
浏览
1

我对使用Spring MVC和Jackson的JSON实体序列化有疑问 . 我有以下实体:

@Table(name = «A»)
class A {

 @Column(name = «Id»)
 Integer id;

 @Column(name = «Name»)
 String name;

 @JoinColumn(name = «B_Id»)
 B b;
}

@Table(name = «B»)
class B {
 @Column(name = «Id»)
 Integer id;

 @Column(name = «Name»)
 String name;
}

我有以下REST控制器返回JSON响应(使用Jackson集成和Spring Data存储库):

@RestController
public class AController {

 @Inject
 ARepository aRepository;

 @RequestMapping(value = «index»)
 List<A> getIndex() {
    return aRepository.findAll();
 }
}

我想从响应“名称”字段中排除(来自A和B类) . 所以期望的JSON响应应该是这样的:

[{
  id: 1,
  b: {
    id: 1
  }
}]

我知道我可以使用Jackson库中的@JsonView,但在这种情况下(据我所知),我需要在实体字段中添加额外的@JsonView注释 .

我想保持我的域实体与UI相关的东西保持清洁,并在UI层配置响应JSON字段列表 .

例如:

@JSON_ENTITY(fieldList = [‘id’, ‘b.id’]) //specify field list explicitly
 //or
 @JSON_ENTITY(view = MyJsonView.class) // that's also would be good

 @RequestMapping(value = «index»)
 List<A> getIndex() {
    return aRepository.findAll();
 }

你有什么线索可以用Spring做到吗?

1 回答

相关问题