jackson jsonToList
来源:互联网 发布:联想m41指纹识别软件 编辑:程序博客网 时间:2024/06/03 20:09
使用jackson,将前端传来的json格式数据在后端转化为list集合。集合的参数可以是pojo对象
1.引入jackson-core-2.8.7.jar,jackson-databind-2.8.7.jar,jackson-annotations-2.8.7.jar(测试版本号)
2.前端数据格式
function testJsonToList(){//{"name":"likai","age":1}
$('#jsontolist').val();
var list = new Array();
var param = '{"username":"likai","age":1}';
list.push('{"username":"likai","age":2}');
list.push('{"username":"liu","age":3}');
list.push('{"username":"zhang","age":4}');
var tmp = "[" + list.join() + "]";
var data = encodeURIComponent(tmp);
var _url = "<%=basePath%>/test/jsontolist?data=" + data;
$.ajax({
type : "post",
url : _url,
dataType : "json",
beforeSend : function() {
},
error : function() {
},
success : function(_data) {
}
});
}
3.pojo
public class User {
private int id;
private String username;
private String age;
public User() {
super();
}
public User(int id, String username, String age) {
super();
this.id = id;
this.username = username;
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
4.jackson方法
public static <T> T jsonToList(String json, TypeReference<T> valueType) {
if (json == null) {
return null;
}
json = json.trim();
if (json.equals("")) {
return null;
}
ObjectMapper mapper = new ObjectMapper();
try {
return mapper.readValue(json, valueType);
} catch (Exception e) {
return null;
}
}
5.接口
@Controller
@RequestMapping("/test")
public class TestController {
@Autowired
private UserService userService;
@RequestMapping(value = "/jsontolist", produces = "application/json;")
public @ResponseBody String deviceohint(HttpServletRequest request,
@RequestParam(value = "data", required = true) String data) throws Exception {
List<User> alarmFilterCustoms = (List<User>) Common.jsonToList(data, new TypeReference<List<User>>(){});
return "";
}
}