Java JSON - Convert Java Object To / From JSON (Jackson)
JSON(JavaScript Object Notation)是一种轻量级的数据交换语言,以文字为基础,且易于让人阅读。尽管JSON是Javascript的一个子集,但JSON是独立于语言的文本格式,并且采用了类似于C语言家族的一些习惯。 维基百科:http://zh.wikipedia.org/wiki/JSON
Jackson is a High-performance JSON processor Java library--Jackson是高性能解析JSON的Java lib
核心代码:
//1. Convert Java object to JSON format
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(new File("c:\\user.json"), user);
//2. Convert JSON to Java object
ObjectMapper mapper = new ObjectMapper();
User user = mapper.readValue(new File("c:\\user.json"), User.class);
以下为具体例子:
一. POJO User.java
package com.jiangge.jkstest;
import java.util.ArrayList;
import java.util.List;
public class User {
private int age = 23;
private String name = "jiangge";
private String qqNum = "499065469";
private List<String> message = new ArrayList<String>() {
{
add("msg 1");
add("msg 2");
add("msg 3");
}
};
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<String> getMessage() {
return message;
}
public void setMessage(List<String> message) {
this.message = message;
}
public String getqqNum() {
return qqNum;
}
public void setqqNum(String qq) {
this.qqNum = qq;
}
@Override
public String toString() {
return "User [age=" + age + ", name=" + name + ", message=" + message
+ "]";
}
}
二. Java Object to JSON
Convert an “user” object into JSON formatted string, and save it into a file “user.json“.
package com.jiangge.jkstest;
import java.io.File;
import java.io.IOException;
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
//To make this work with the latest (1.9.3) Jackson,
//there must be getters and setters for the members in the User class.
public class JacksonExampleToJson {
public static void main(String[] args) {
User user = new User();
ObjectMapper objMapper = new ObjectMapper();
try {
// convert user object to json string, and save to a file
objMapper.writeValue(new File("c:\\user.json"), user);
// display to console
System.out.println(objMapper.writeValueAsString(user));
} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
控制台输出:
{"age":23,"name":"jiangge","qqNum":"499065469","message":["msg 1","msg 2","msg 3"]}
三. JSON to Java Object
Read JSON string from file “user.json“, and convert it back to Java object.
package com.jiangge.jkstest;
import java.io.File;
import java.io.IOException;
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class JacksonExampleRead {
public static void main(String[] args) {
ObjectMapper objMapper = new ObjectMapper();
try {
// read from file, convert it to user class
User user = objMapper.readValue(new File("c:\\user.json"), User.class);
// display to console
System.out.println(user);
} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
控制台输出:
User [age=23, name=jiangge, message=[msg 1, msg 2, msg 3]]
参考资料:
http://www.mkyong.com/java/how-to-convert-java-object-to-from-json-jackson/
需要更多资料时,可查看:
http://www.mkyong.com/tutorials/java-json-tutorials/