Java SpringFramework ResponseBody返回具有空值的对象
我有一个RestController,它将胶片对象列表发回给用户:Java SpringFramework ResponseBody返回具有空值的对象,java,json,spring,serialization,Java,Json,Spring,Serialization,我有一个RestController,它将胶片对象列表发回给用户: @RestController @RequestMapping("/view") public class FilmRestController { @RequestMapping(value = "/", method = RequestMethod.GET, produces = "application/json") public @ResponseBody List<Film> getCu
@RestController
@RequestMapping("/view")
public class FilmRestController {
@RequestMapping(value = "/", method = RequestMethod.GET, produces = "application/json")
public @ResponseBody List<Film> getCurrentFilms(){
FilmInfo filmInfo = new FilmInfo();
return filmInfo.getCurrentFilms();
}
}
起初我认为这是一个小故障,所以后来我写了以下方法:
@RequestMapping(value = "/getOneFilm", method = RequestMethod.GET, produces = "application/json")
public @ResponseBody Film getOneFilm(){
Film film = new Film("The Shawshank Redemption", "Frank Darabont", Arrays.asList("Tim Robbins","Morgan Freeman","Bob Gunton"));
return film;
}
毫无疑问,我的回答是:
{
"title": null,
"director": null,
"actors": null
}
根据要求,这是我的电影课:
package entities;
import java.util.List;
public class Film {
private String title;
private String director;
private List<String> actors;
public Film(String title, String director, List<String> actors) {
title = this.title;
director = this.director;
actors = this.actors;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDirector() {
return director;
}
public void setDirector(String director) {
this.director = director;
}
public List<String> getActors() {
return actors;
}
public void setActors(List<String> actors) {
this.actors = actors;
}
}
包实体;
导入java.util.List;
公共级电影{
私有字符串标题;
私有字符串控制器;
私人名单行动者;
公共电影(字符串标题、字符串导演、演员名单){
title=this.title;
director=this.director;
actors=this.actors;
}
公共字符串getTitle(){
返回标题;
}
公共无效集合标题(字符串标题){
this.title=标题;
}
公共字符串getDirector(){
返回董事;
}
公共无效集合控制器(字符串控制器){
this.director=director;
}
公共列表getActors(){
返回演员;
}
公共角色(列出角色){
这个。演员=演员;
}
}
是否存在ResponseBy无法将我的对象转换为在响应中发回的原因?我应该改变策略并手动执行JSON序列化程序吗?I在构造函数中,您正在更新参数而不是属性:
public Film(String title, String director, List<String> actors) {
title = this.title;
director = this.director;
actors = this.actors;
}
公共电影(字符串标题、字符串导演、演员名单){
title=this.title;
director=this.director;
actors=this.actors;
}
类中的属性保持为null。将其更改为:
public Film(String title, String director, List<String> actors) {
this.title = title;
this.director = director;
this.actors = actors;
}
公共电影(字符串标题、字符串导演、演员名单){
this.title=标题;
this.director=director;
这个。演员=演员;
}
你能把你的课程电影
贴出来吗?当您使用annotationRestController
时,不需要ResponseBody
注释public Film getOneFilm(){
应该可以很好地工作。@CrazySabPath我已经在问题中添加了我的电影类。我本以为它也可以很好地工作。但不幸的是它没有。谢谢。我以前从来没有把它们搞混过。不过我的眼睛有时会这样做:
public Film(String title, String director, List<String> actors) {
this.title = title;
this.director = director;
this.actors = actors;
}