Java後臺用Map封裝返回結果遇到的問題

今天在後臺寫接口返回數據有點複雜,因而就用Map封裝數據,結果遇到問題:html

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;
    }

}

  前臺返回數據是這樣的:java

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

  什麼?返回的竟是全類名!!!百思不得姐app

  因而重寫了toString()方法,就解析得了了:ide

@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}]}
相關文章
相關標籤/搜索