在我的Json中返回一些对象 [英] Return some object in my Json
本文介绍了在我的Json中返回一些对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的userController.java:
My userController.java:
@RestController
public class UserController {
private static final Logger LOGGER = LoggerFactory.getLogger(UserController.class);
private final UserService userService;
@Inject
public UserController(final UserService userService) {
this.userService = userService;
}
@RequestMapping(value = "/user", method = RequestMethod.GET)
public List<User> listUsers() {
LOGGER.debug("Received request to list all users");
return userService.getList();
}
@ExceptionHandler
@ResponseStatus(HttpStatus.CONFLICT)
public String handleUserAlreadyExistsException(UserAlreadyExistsException e) {
return e.getMessage();
}
}
User.java:
User.java:
@Entity
public class User {
@Id
@NotNull
@Size(max = 64)
@Column(name = "id", nullable = false, updatable = false)
private String id;
@NotNull
@Size(max = 64)
@Column(name = "name", nullable = false)
private String name;
@NotNull
@Size(max = 64)
@Column(name = "firstname", nullable = false)
private String firstname;
@NotNull
@Size(max = 64)
@Column(name = "email", nullable = false)
private String email;
@NotNull
@Size(max = 64)
@Column(name = "password", nullable = false)
private String password;
@Transient
private List<Events> events;
public User() {
}
public User(String id, String name, String firstname, String email, String password) {
super();
this.id = id;
this.name = name;
this.firstname = firstname;
this.email = email;
this.password = password;
}
public void setId(String id) {
this.id = id;
}
public String getId() {
return id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public List<Events> getEvents() {
return events;
}
public void setEvents(List<Events> events) {
this.events = events;
}
@Override
public String toString() {
return Objects.toStringHelper(this).add("id", id).add("name", name).add("firstname", firstname)
.add("email", email).add("password", password).add("events", events).toString();
}
}
有可能仅在name
和firstname
我的pom.xml:
My pom.xml:
<!-- Spring Boot -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.0.1.RELEASE</version>
</parent>
...
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
...
推荐答案
您可以使用@JsonView
来控制呈现的内容.您可以在此Spring博客文章 https中找到更多详细信息://spring.io/blog/2014/12/02/latest-jackson-integration-improvements-in-spring
You could use @JsonView
to control what is rendered. You can find more details in this Spring blog post https://spring.io/blog/2014/12/02/latest-jackson-integration-improvements-in-spring
假设您具有带有接口Summary
public class View {
interface Summary {}
}
然后您可以像这样注释属性:
You could then annotate your properties like so:
@JsonView(View.Summary.class)
private String name;
@JsonView(View.Summary.class)
private String firstname;
然后是您的请求映射:
@JsonView(View.Summary.class)
@RequestMapping(value = "/user", method = RequestMethod.GET)
这只会在结果JSON中返回name
和firstname
.
This would only return name
and firstname
in the resulting JSON.
这篇关于在我的Json中返回一些对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文