今天在后台写接口返回数据有点复杂,于是就用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> demo() {
Map> result = new HashMap<>();
Person key = new Person();
key.setName("key");
key.setAge(12);
List 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}]}