我对使用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 回答
您可以使用本答案中表示的库,它具有Spring集成:https://stackoverflow.com/a/28388559/5842030