我正在研究Springboot MySQL示例(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(),即使这样也不起作用。任何帮助表示赞赏。
答案 0 :(得分:4)
您可以使用writerWithDefaultPrettyPrinter
中的ObjectMapper
。这样可以进行漂亮的打印。
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));
答案 1 :(得分:0)
在getPerson()方法中,使用size in c++: 24
size in c : 84
获取employee对象的JSON:
objectMapper.writeValueAsString()
在Employee类中添加一个@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;
}
,并使用来自Jackson的toString()
来序列化Employee实例。覆盖Employee类中的ObjectMapper
方法的好处是您可以在任何地方进行toString()
来获取Employee对象的JSON表示形式。
System.out.println(employee);
答案 2 :(得分:0)
您可以使用Google gson库:
@Override
public String toString() {
return new GsonBuilder().setPrettyPrinting().create().toJson(this);
}