之前在进行json转换的时候,一般使用Gson,今天在公司中看到有同事使用Jackson,然后学习了一下,发现使用特别简单,现在总结一下基本使用。
首先,引入项目
方法一:
下载Jackson的支持包:
https://oss.sonatype.org/content/repositories/snapshots/com/fasterxml/jackson/core/
添加到Android项目中。
注:添加到projects的libs目录下,重构项目即可
方法二:
com.fasterxml.jackson.core:jackson-core:${jackson-core-version}
com.fasterxml.jackson.core:jackson-annotations:${jackson-annotations-version}
com.fasterxml.jackson.core:jackson-databind:${jackson-databind-version}
其次,就是具体的使用了
1、创建一个bean文件
public class UserBean {
public String name;
public String sex;
public int age;
}
2、Jackson的所有操作都是通过objectMapper这个操作核心来完成的,因此,创建一个objectMapper对象,通过这个对象来操作json或者Java数据,具体的代码如下:
2.1.将json转java
(一)定义一个bean对象
/**
* @author panzhijie
* @version 2017-01-09 17:48
*/
public class People {
public String nama;
public String birthday;
public int age;
}
(二)创建一个ObjectMapper实例用于转换
ObjectMapper objectMapper = new ObjectMapper();
try {
objectMapper.writeValue(new File("xx.json"),People.class);
//得到json字符串
People people = objectMapper.readValue(new File("xx.json"), People.class);
} catch (IOException e) {
e.printStackTrace();
}
readValue(参数一,参数二)方法中的参数一可以是一个json文件,也可以是一个json样式的url链接,还可以是一串json字符串;参数二是要转换成的对象
3.将java转换成json
首先获取和上面一样,获取ObjectMapper实例,然后调用ObjectMapper的writeValue方法
ObjectMapper objectMapper = new ObjectMapper();
try {
objectMapper.writeValue(new File("xx.json"),People.class);
//得到json字符串
String s = objectMapper.writeValueAsString(People.class);
} catch (IOException e) {
e.printStackTrace();
}