注:由于水平有限,欢迎指正。
简介:Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。
一、准备工作
1、 下载依赖库jar包
Jackson的jar all下载地址:http://jackson.codehaus.org/1.7.6/jackson-all-1.7.6.jar
然后在工程中导入这个jar包即可开始工作
官方示例:http://wiki.fasterxml.com/JacksonInFiveMinutes
直接下载:http://download.csdn.net/download/u014802518/8909231
本篇简介如何使用Jackson进行Java对象与JSON的互相转换
/**Student类:*/
public class Students {
/**编号*/
private int id;
/**名称*/
private String name;
/**性别*/
private String gender;
public Students(){}
public Students(int id, String name, String gender) {
this.id = id;
this.name = name;
this.gender = gender;
}
@Override
public String toString() {
return "Students [id=" + id + ", name=" + name + ", gender=" + gender+ "]";
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}
示例1:把Java对象转换为Json格式字符串
public static void main(String[] args) throws JsonGenerationException
, JsonMappingException, IOException {
ObjectMapper mapper = new ObjectMapper();
Students stu = new Students(100,"张三","男");
String stuJson= mapper.writeValueAsString(list);
System.out.println(stuJson);
}
运行结果:
示例2:把Json格式字符串转换为对应的Java对象
public static void main(String[] args) throws JsonGenerationException
, JsonMappingException, IOException {
ObjectMapper mapper = new ObjectMapper();
String strJson = "{\"name\":\"张三\",\"id\":100,\"gender\":\"女\"}";
Students stu = mapper.readValue(strJson, Students.class);
System.out.println(stuJson);
}
ObjectMapper对象的readValue方法,需要提供2个参数。
第一个参数就是解析的JSON字符串,
第二个参数是即将将这个JSON解析为什么Java对象。
运行结果:
示例3:把Java对象转换为Json
public static void main(String[] args) throws JsonGenerationException
, JsonMappingException, IOException {
ObjectMapper mapper = new ObjectMapper();
Students stu = new Students(520,"魏敏","女");
mapper.writeValue(System.out,stu ); //输出 PrintStream流
}
objectMapper的writeValue方法可以将一个Java对象转换成JSON。
参数一:需要提供一个’输出流’,转换后可以通过这个流来输出转换后的内容。
或是提供一个File,将转换后的内容写入到File中。
当然,这个参数也可以接收一个JSONGenerator,然后通过JSONGenerator来输出转换后的信息。
参数二:将要被转换的Java对象。
如果用三个参数的方法,那么是一个SerializationConfig。这个config可以提供一些转换时的规则,过指定的Java对象的某些属性进行过滤或转换等。详情:http://blog.csdn.net/sdyy321/article/details/40298081
运行结果:
在使用ObjectMapper对象readValue或者writeValue的时候,JSON可以以字符串的形式传入,也可以以文件的形式传入,官方的例子是让将JSON保存在文件中