您的位置:首页 > Web前端 > JavaScript

Jackson学习对象与JSON互相转化

2015-07-17 16:50 555 查看
注:由于水平有限,欢迎指正。

简介: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保存在文件中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  json jack-dorsey java