首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在SpringBoot JPA方法中将Java对象转换为字符串

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

Stack Overflow用户
提问于 2018-08-25 04:25:00
回答 3查看 6.9K关注 0票数 2

我正在编写Springboot MySQL example(Similar example)。在其中一种方法中,我想记录JSON数据,但我得到了,

com.example.employee.model.Employee@1595ddd2

代码语言:javascript
复制
@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(),即使这样也不起作用。任何帮助都是非常感谢的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-08-25 04:43:40

您可以从ObjectMapper使用writerWithDefaultPrettyPrinter。这可以实现漂亮的打印效果。

代码语言:javascript
复制
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

代码语言:javascript
复制
System.out.println(mapper.writeValueAsString(employee));
票数 6
EN

Stack Overflow用户

发布于 2018-08-25 04:42:33

在getPerson()方法中,使用objectMapper.writeValueAsString()获取employee对象的JSON:

代码语言:javascript
复制
@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表示。

代码语言:javascript
复制
 public String toString(){
     String serialized ="";
        try{
            ObjectMapper objectMapper = new ObjectMapper();
            serialized = objectMapper.writeValueAsString(this);
        }catch(JsonProcessingException jpe){
            jpe.printStackTrace();
        }
    return serialized;
 }
票数 0
EN

Stack Overflow用户

发布于 2019-03-08 17:19:12

你可以使用google gson库:

代码语言:javascript
复制
    @Override
public String toString() {
    return new GsonBuilder().setPrettyPrinting().create().toJson(this);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52011270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档