Java后台用Map封装返回结果遇到的问题

时间:2019-10-25
本文章向大家介绍Java后台用Map封装返回结果遇到的问题,主要包括Java后台用Map封装返回结果遇到的问题使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

今天在后台写接口返回数据有点复杂,于是就用Map封装数据,结果遇到问题:

import lombok.Getter;
import lombok.Setter;

/**
 * 类注解
 *
 * @author xinhai.ma
 * @date 2019年10月25日 14:31
 */
public class Person {

    @Setter
    @Getter
    private String name;

    @Setter
    @Getter
    private Integer age;

}



/**
 * 类注解
 *
 * @author xinhai.ma
 * @date 2019年10月25日 14:30
 */
@RestController
public class DemoController {

    @GetMapping(value = "/demo.html")
    public Map<Person, List<Person>> demo() {
        Map<Person, List<Person>> result = new HashMap<>();
        Person key = new Person();
        key.setName("key");
        key.setAge(12);

        List<Person> value = new ArrayList<>();
        value.add(key);
        value.add(key);
        value.add(key);

        result.put(key, value);
        return result;
    }

}

  前台返回数据是这样的:

{"com.example.demo.Person@23a922d4":[{"name":"key","age":12},{"name":"key","age":12},{"name":"key","age":12}]}

  什么?返回的竟是全类名!!!百思不得姐

  于是重写了toString()方法,就解析得了了:

@Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

  

{"Person{name='key', age=12}":[{"name":"key","age":12},{"name":"key","age":12},{"name":"key","age":12}]}

  

原文地址:https://www.cnblogs.com/mxh-java/p/11738717.html