今天在後臺寫接口返回數據有點複雜,因而就用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}]}