在SpringBoot JPA方法中将Java对象转换为字符串

时间:2018-08-24 20:25:00

标签: java spring-boot spring-data-jpa

我正在研究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(),即使这样也不起作用。任何帮助表示赞赏。

3 个答案:

答案 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);
}