简单的说,就是要实现java对象转化为json对象,下面采取两种实现方法,一种是fastjson解析器,另外一种爱用jackjson
一、采用fastjson结合springmvc的方式
1、引入依赖
5.0.2.RELEASE
UTF-8
1.8
1.8
org.springframework
spring-context
${spring.version}
org.springframework
spring-web
${spring.version}
org.springframework
spring-webmvc
${spring.version}
javax.servlet
servlet-api
2.5
provided
javax.servlet.jsp
jsp-api
2.0
provided
org.springframework
spring-core
${spring.version}
com.fasterxml.jackson.core
jackson-databind
2.9.0
com.alibaba
fastjson
1.2.47
com.fasterxml.jackson.core
jackson-core
2.9.0
com.fasterxml.jackson.core
jackson-annotations
2.9.0
com.fasterxml.jackson.dataformat
jackson-dataformat-xml
2.9.8
junit
junit
4.10
2、编写实体类
private String name;
private int age;
private String password;
@JSONField(format = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date date;
3、编写controller控制代码
/**
* 返回java对象
* @param student
* @return
*/
@RequestMapping("/testAjax")
@ResponseBody
public Student testAjax( Student student) {
System.out.println("testAjax is working");
student.setName("tom");
student.setAge(23);
student.setPassword("123456");
student.setDate(new Date());
System.out.println(student);
return student;
}
4、在springmvc中编写配置json解析代码
application/json;charset=UTF-8
5、在response.jsp中发送ajax请求数据
$.getJSON("/user/testAjax",function (data) {
console.log(data);
})
测试代码:
二、采用jackjson的方式
1、导入依赖如上相同
2、创建实体类
也就是在之前springmvc中表单提交的时候封装对象的问题,遇见日期类型解决404的问题解决方案一
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date brithday;
private String name;
private int age;
private String password;
@JSONField(format = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date date;
3、编写测试代码
@Test
public void test1() throws Exception{
Man man = new Man();
man.setName("陈多多");
man.setAddress("重庆合川");
man.setBrithday(new Date());
Man man1 = new Man();
man.setName("陈多多");
man.setAddress("重庆合川");
man.setBrithday(new Date());
Man man2 = new Man();
man.setName("陈多多");
man.setAddress("重庆合川");
man.setBrithday(new Date());
//创建list集合转为json
List ps = new ArrayList();
ps.add(man);
ps.add(man1);
ObjectMapper objectMapper = new ObjectMapper();
String value = objectMapper.writeValueAsString(ps);
System.out.println(value);
}
@Test
public void test3() throws Exception{
Map map = new HashMap();
map.put("name","陈多多");
map.put("age",23);
map.put("address","重庆合川");
ObjectMapper objectMapper = new ObjectMapper();
String value = objectMapper.writeValueAsString(map);
System.out.println(value);
}
}
测试结果如下:
list集合转化出来是一个数组对象,map结合转化出来和java对象一致