【发布时间】:2020-07-03 08:57:49
【问题描述】:
我正在使用@JsonView注解输出Spring MVC中复杂对象的简化版本。
观点:
public class UserView {
public interface Summary {}
}
实体类:
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name = "name", length = 255)
@JsonView(UserView.Summary.class)
private String name;
资源方法:
@GetMapping(value = "users", produces = {MediaType.APPLICATION_XML_VALUE, MediaType.APPLICATION_JSON_UTF8_VALUE})
@JsonView(UserView.Summary.class)
public List<User> getAllUsers() {
return userRepository.findAllBy();
}
这在输出 JSON 时非常有效:
[
{"name": "User 1"},
{"name": "User 2"}
]
但是当“Content-Type”设置为XML时,会返回如下输出:
<List>
<item>
<name>User 1</name>
</item>
<item>
<name>User 2</name>
</item>
</List>
我想用<Users> 代替<List> 和<User> 代替<item>,但我找不到更改这些通用名称的方法。我尝试过像@XmlRootElement(name="user") 或@XmlElementWrapper(name="users") 这样的注释,但没有运气。
【问题讨论】:
-
您能对答案提供反馈吗?谢谢。
-
嗨@SagarVeeram,是的,对不起。我已经尝试了两个答案,它们都有效。我将接受提供的第一个。非常感谢你们的贡献!
-
@viorel 在我的情况下,xml 输出不受 JsonView 的影响,但 json 呈现完美。你是如何制作你的作品的,你能分享一下。
标签: java spring-boot jackson2 jackson-dataformat-xml