我正在编写Springboot MySQL example(Similar example)。在其中一种方法中,我想记录JSON数据,但我得到了,
com.example.employee.model.Employee@1595ddd2
@RequestMapping(value="/employees12/{id}", method=RequestMethod.GET)
public Employee getPerson(@PathVariable Long id){
Employee employee = employeeRepository.findOne(id);
//String str=employee.toString();
//System.out.println("string is " + str);
System.out.println(employee); //print json in logs console
return employee;
}
return employees;
正在提供JSON数据。我尝试过toString(),即使这样也不起作用。任何帮助都是非常感谢的。
发布于 2018-08-25 04:43:40
您可以从ObjectMapper
使用writerWithDefaultPrettyPrinter
。这可以实现漂亮的打印效果。
private ObjectMapper mapper = new ObjectMapper();
@RequestMapping(value="/employees12/{id}", method=RequestMethod.GET)
public Employee getPerson(@PathVariable Long id){
Employee employee = employeeRepository.findOne(id);
System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(employee));
return employee;
}
如果希望输出仅处于紧凑模式,请使用writeValueAsString
System.out.println(mapper.writeValueAsString(employee));
发布于 2018-08-25 04:42:33
在getPerson()方法中,使用objectMapper.writeValueAsString()
获取employee对象的JSON:
@RequestMapping(value="/employees12/{id}", method=RequestMethod.GET)
public Employee getPerson(@PathVariable Long id){
Employee employee = employeeRepository.findOne(id);
ObjectMapper objectMapper = new ObjectMapper();
System.out.println(objectMapper.writeValueAsString(employee));
return employee;
}
在Employee类中添加一个toString()
,使用来自Jackson的ObjectMapper
来序列化Employee实例。在Employee类中覆盖toString()
方法的优点是您可以在任何地方执行System.out.println(employee);
来获得Employee对象的JSON表示。
public String toString(){
String serialized ="";
try{
ObjectMapper objectMapper = new ObjectMapper();
serialized = objectMapper.writeValueAsString(this);
}catch(JsonProcessingException jpe){
jpe.printStackTrace();
}
return serialized;
}
发布于 2019-03-08 17:19:12
你可以使用google gson库:
@Override
public String toString() {
return new GsonBuilder().setPrettyPrinting().create().toJson(this);
}
https://stackoverflow.com/questions/52011270
复制相似问题