大家好,我一直在查看与此问题相关的帖子,但我没有成功解决它。实际上我正在使用带有jackson和其他API的spring boot 1.6。当我在attribut上使用@JsonView时,它包含在使用Advanced Rest Client生成的最终Json中。但是没有@JsonView的attributs不包含在序列化中。我发现默认情况下“spring.jackson.mapper.default-view-inclusion”为“true”我尝试按照此链接How to get value of array inside another array in php?,但它不起作用。我主要关注的是创建视图而不必在所有视图中包含的attribut上使用@JsonView,因此只需使用@Json视图来获取依赖于视图的attributs,但它不起作用。这是我的实体之一
public class Person implements Serializable {
private static final long serialVersionUID = 1151758997545437061L;
private String firstName;
private String lastName;
@JsonView(UserViews.SimpleView.class)
@Temporal(javax.persistence.TemporalType.DATE)
private Date birthDate;
@JsonView(UserViews.SimpleView.class)
private String birthPlace;
// getters and setters
}
这是我的控制器
@RestController
@RequestMapping(value = "/")
public class PersonController {
private Logger logger= org.slf4j.LoggerFactory.getLogger(PersonController.class);
@Autowired
private PersonService<Person, PersonDao<Person>> personService;
public PersonService<Person, PersonDao<Person>> getPersonService() {
return personService;
}
public void setPersonService(PersonService<Person, PersonDao<Person>> personService) {
this.personService = personService;
}
//-------------------Retrieve All Person--------------------------------------------------------
@GetMapping(value = "/person")
@JsonView(UserViews.SimpleView.class)
public ResponseEntity<List<Person>> findAllPerson() throws Exception {
logger.error("##############################Loading person################################");
List<Person> listPersons = personService.findAll();
if (listPersons.isEmpty()) {
return new ResponseEntity<>(HttpStatus.NO_CONTENT);//You many decide to return HttpStatus.NOT_FOUND
}
return new ResponseEntity<>(listPersons, HttpStatus.OK);
}
//-------------------Retrieve filtered list Person--------------------------------------------------------
@PostMapping(value = "/person/filtered")
@JsonView(UserViews.RoleView.class)
public ResponseEntity<List<Person>> findFilterperson() throws Exception {
List<Person> listPersons = personService.findAll();
if (listPersons.isEmpty()) {
return new ResponseEntity<>(HttpStatus.NO_CONTENT);//You many decide to return HttpStatus.NOT_FOUND
}
return new ResponseEntity<>(listPersons, HttpStatus.OK);
}
}
我甚至将它添加到我的application.properties
spring.jackson.mapper.default-view-inclusion:true
我希望在我的所有视图中都有firstName和LastName,但我没有得到这两个字段