Преобразовать Java-объект в строку в методе SpringBoot JPA - PullRequest
0 голосов
/ 24 августа 2018

Я работаю над примером Springboot MySQL ( Аналогичный пример ). В одном из методов я хочу записать данные 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 голосов
/ 24 августа 2018

Вы можете использовать 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));
0 голосов
/ 08 марта 2019

Вы можете использовать библиотеку Google gson:

    @Override
public String toString() {
    return new GsonBuilder().setPrettyPrinting().create().toJson(this);
}
0 голосов
/ 24 августа 2018

В методе getPerson () используйте objectMapper.writeValueAsString(), чтобы получить 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;
}

Добавление toString() в класс Employee с ObjectMapper от Джексона для сериализации экземпляра Employee. Преимущество переопределения метода toString() в классе Employee состоит в том, что вы можете просто сделать System.out.println(employee); в любом месте, чтобы получить представление JSON объекта Employee.

 public String toString(){
     String serialized ="";
        try{
            ObjectMapper objectMapper = new ObjectMapper();
            serialized = objectMapper.writeValueAsString(this);
        }catch(JsonProcessingException jpe){
            jpe.printStackTrace();
        }
    return serialized;
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...