没什么技巧,Jackson已经给出了完美的用法,自己再简单包装下就行了,也很简单,我就不废话了!
第一步:引入依赖jar包,必须的
<!-- Jackson Json处理工具包 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.4.2</version>
</dependency>
第二步:开撸,自己再简单包装后的4中使用方法
// 定义jackson对象
private static final ObjectMapper MAPPER = new ObjectMapper();
/**
* 将对象转化为json对象(可以是多个对象即集合)
* 因为最后都会把转化为字符串
* @param data
* @return
*/
public static String objectToJson(Object data) {
try {
String string = MAPPER.writeValueAsString(data);
return string;
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return null;
}
/**
* 将json转化为单个对象
* @param jsonData
* @param beanType
* @return
*/
public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {
try {
T t = MAPPER.readValue(jsonData, beanType);
return t;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 将json转化为list集合
* @param jsonData
* @param beanType
* @return
*/
public static <T> List<T> jsonToList(String jsonData, Class<T> beanType) {
JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);
try {
List<T> list = MAPPER.readValue(jsonData, javaType);
return list;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
第三 步:测试
/**
* 测试方法
*/
@Test
public void fun() {
Student stu = new Student("zhansan","123456","男");
Student stu2 = new Student("lisi","123456","女");
List<Student> list = new ArrayList<Student>();
list.add(stu);
list.add(stu2);
//测试单个对象转化为json对象
System.out.println("-----------对象转化为json对象---------------");
String jsonData1 = MyJackson.objectToJson(stu);
System.out.println(jsonData1);
//测试多个对象转化为json对象
System.out.println("-----------多个对象转化为json对象---------------");
String jsonData2 = MyJackson.objectToJson(list);
System.out.println(jsonData2);
//测试 将json转化为单个对象
System.out.println("-----------json转化为单个对象--------------");
String jsonData3 = "{\"name\":\"zhansan\",\"password\":\"123456\",\"sex\":\"男\"}";
Student pojo = MyJackson.jsonToPojo(jsonData3, Student.class);
System.out.println(pojo.toString());
//测试 将json转化为list
System.out.println("-----------将json转化为list--------------");
String jsonData4 = "[{\"name\":\"zhansan\",\"password\":\"123456\",\"sex\":\"男\"},{\"name\":\"lisi\",\"password\":\"123456\",\"sex\":\"女\"}]";
List<Student> list2 = MyJackson.jsonToList(jsonData4, Student.class);
System.out.println(list.toString());
}
第四步:结果
-----------对象转化为json对象---------------
{"name":"zhansan","password":"123456","sex":"男"}
-----------多个对象转化为json对象---------------
[{"name":"zhansan","password":"123456","sex":"男"},{"name":"lisi","password":"123456","sex":"女"}]
-----------json转化为单个对象--------------
Student [name=zhansan, password=123456, sex=男]
-----------将json转化为list--------------
[Student [name=zhansan, password=123456, sex=男], Student [name=lisi, password=123456, sex=女]]