I studied json by myself today, and it feels very easy to use. After testing, it is much faster than google's GSON
At the same time, Jackson can easily convert Java objects into json objects and xml documents, and can also convert json and xml into Java objects. The function is very powerful!
As we all know, json is very widely used in today's Internet era. Because everyone pays so much attention, the parsing performance requirements of json are also very high.
1. Preparation
1. Download the dependency library jar package
Jackson's jar all download address: http://jackson.codehaus.org/1.7.6/jackson-all-1.7.6.jar
Then import the jar package in the project to start working
Official example: http://wiki.fasterxml.com/JacksonInFiveMinutes
Because the following program is run with the junit test case, it is necessary to add the junit jar package. The version is junit-4.2.8
If you need to convert xml, then stax2-api.jar is also required
2. The basic code of the test class is as follows
[java] view plaincopy
- /*
- * @project java
- * @package
- * @file Jackson.java
- * @version 1.0
- * @author Liao Yiping
- * @time 2011-11-8 02:59:37 AM
- */
- public class Jackson {
- /*
- *
- * Class Descripton goes here.
- *
- * @class Jackson
- * @version 1.0
- * @author Liao Yiping
- * @time 2011-11-8 02:59:37 AM
- */
- public static JsonGenerator jsonGenerator = null;
- private static ObjectMapper mapper = new ObjectMapper();
- public static void main(String[] args) {
- Student student = new Student();
- student.setIsstudent (true);
- student.setUid(1000);
- student.setUname("xiao liao");
- student.setUpwd("123");
- student.setNumber (12);
- Map<String, Student> stuMap = new HashMap<String, Student>();
- stuMap.put("1", student);
- stuMap.put("2", student);
- List<Object> stuList = new ArrayList<Object>();
- List<Student> stuList1 = new ArrayList<Student>();
- stuList1.add(student);
- student= new Student();
- student.setIsstudent (false);
- student.setUid(200);
- student.setUname("xiao mi");
- stuList1.add(student);
- stuList.add(student);
- stuList.add("xiao xin");
- stuList.add("xiao er");
- stuList.add(stuMap);
- //readJson2List();
- try {
- //readJson2Array();
- //writeArray2Json(array);
- //writeJson2List();
- //writeEntity2Json(student);
- writeJson2Entity();
- // writeMap2Json (stuMap);
- //writeList2Json(stuList1);
- } catch (IOException e) {
- e.printStackTrace ();
- }
- }
- /**
- *
- * <code>writeEntity2Json</code>
- * @description: TODO (entity class converted to json)
- * @param object
- * @throws IOException
- * @since 2011-11-8 Liao Yiping
- */
- public static void writeEntity2Json(Object object) throws IOException {
- mapper.writeValue( new File("D:\\developSoft\\aaadowload\\testjson1\\lib\\aa.txt"),object );
- mapper.writeValue( System.out,object );
- }
- /**
- *
- * <code>writeArray2Json</code>
- * @description: TODO (array converted to json array)
- * @param object
- * @throws IOException
- * @since 2011-11-8 Liao Yiping
- */
- public static void writeArray2Json(Object object) throws IOException {
- // writeValue has the same function as writeObject
- mapper.writeValue( new File("D:\\developSoft\\aaadowload\\testjson1\\lib\\aa.txt"),object );
- mapper.writeValue(System.out,object );
- }
- /**
- *
- * <code>writeMap2Json</code>
- * @description: TODO (map object converted to json object)
- * @param object
- * @throws IOException
- * @since 2011-11-8 Liao Yiping
- */
- public static void writeMap2Json(Object object) throws IOException {
- System.out.println("使用ObjectMapper-----------");
- // writeValue has the same function as writeObject
- System.out.println("==>"+mapper.writeValueAsString(object));
- mapper.writeValue( new File("D:\\developSoft\\aaadowload\\testjson1\\lib\\aamap.txt"),object );
- mapper.writeValue( System.out , object );
- }
- /**
- *
- * <code>writeList2Json</code>
- * @description: TODO (list converted to json)
- * @param object
- * @throws IOException
- * @since 2011-11-8 Liao Yiping
- */
- public static void writeList2Json(Object object) throws IOException {
- System.out.println("==>"+mapper.writeValueAsString(object));
- mapper.writeValue( new File("D:\\developSoft\\aaadowload\\testjson1\\lib\\aamap.txt"),object );
- mapper.writeValue( System.out , object );
- }
- /**
- *
- * <code>writeJson2Entity</code>
- * @description: TODO (json converted to entity)
- * @throws IOException
- * @since 2011-11-8 Liao Yiping
- */
- public static void writeJson2Entity() throws IOException {
- System.out.println("json string is converted to entity-------------");
- // File file = new File("D:\\developSoft\\aaadowload\\testjson1\\lib\\aa.txt");
- // FileInputStream inputStream = new FileInputStream(file);
- // Student student = mapper.readValue(inputStream,Student.class);
- // System.out.println(student.toString());
- // pretty output
- //mapper.defaultPrettyPrintingWriter().writeValueAsString(value);
- String json = "{\"uid\":1000,\"uname\":\"xiao liao\",\"upwd\":\"123\",\"number\":12.0,\"isstudent\":true}";
- Student student1 = mapper.readValue(json,Student.class);
- System.out.println("json2:"+student1.toString());
- }
- /**
- *
- * <code>writeJson2List</code>
- * @description: TODO (json special trip list object)
- * @throws IOException
- * @since 2011-11-8 Liao Yiping
- */
- public static void writeJson2List() throws IOException {
- System.out.println("json string is converted to entity-------------");
- File file = new File("D:\\developSoft\\aaadowload\\testjson1\\lib\\aa.txt");
- FileInputStream inputStream = new FileInputStream(file);
- Student student = mapper.readValue(inputStream,Student.class);
- System.out.println(student.toString());
- String json = "[{\"uid\":1000,\"uname\":\"xiao liao\",\"upwd\":\"123\",\"number\":12.0,\"isstudent\":true},{\"uid\":200,\"uname\":\"xiao mi\",\"upwd\":null,\"number\":0.0,\"isstudent\":false}]";
- List<LinkedHashMap<String, Object>> s= mapper.readValue(json,List.class);
- for (int i = 0; i < s.size(); i++) {
- LinkedHashMap<String, Object> link = s.get(i);
- Set<String> key = link.keySet();
- for (Iterator iterator = key.iterator(); iterator.hasNext();) {
- String string = (String) iterator.next();
- System.out.println(string+"==>"+link.get(string));
- }
- System.out.println("json:"+i+""+s.get(i).toString());
- }
- }
- /**
- * Convert JSON to List object
- */
- public static void readJson2List() {
- String json = "[{\"uid\":1,\"uname\":\"www\",\"number\":234,\"upwd\":\"456\"},"
- + "{\"uid\":5,\"uname\":\"tom\",\"number\":3.44,\"upwd\":\"123\"}]";
- try {
- List<LinkedHashMap<String, Object>> list = mapper.readValue(
- json, List.class);
- System.out.println(list.size());
- for (int i = 0; i < list.size(); i++) {
- Map<String, Object> map = list.get(i);
- Set<String> set = map.keySet();
- for (Iterator<String> it = set.iterator(); it.hasNext();) {
- String key = it.next();
- System.out.println(key + ":" + map.get(key));
- }
- }
- } catch (JsonParseException e) {
- e.printStackTrace ();
- } catch (JsonMappingException e) {
- e.printStackTrace ();
- } catch (IOException e) {
- e.printStackTrace ();
- }
- }
- /**
- * Convert JSON to List object
- */
- public static void readJson2Array() {
- String json = "[{\"uid\":1,\"uname\":\"www\",\"number\":234,\"upwd\":\"456\"},"
- + "{\"uid\":5,\"uname\":\"tom\",\"number\":3.44,\"upwd\":\"123\"}]";
- try {
- Student[] students = mapper.readValue(json, Student[].class);
- for (Student student : students) {
- System.out.println(">"+student.toString());
- }
- } catch (JsonParseException e) {
- e.printStackTrace ();
- } catch (JsonMappingException e) {
- e.printStackTrace ();
- } catch (IOException e) {
- e.printStackTrace ();
- }
- }
- }
print result:
Convert the string to entity-------------
json2:uid=1000,name=xiao liao,upwd=123,number=12.0,isStudent=true
writeMap2Json -----------
{"2":{"uid":1000,"uname":"xiao liao","upwd":"123","number":12.0,"isstudent":true},"1":{"uid":1000,"uname":"xiao liao","upwd":"123","number":12.0,"isstudent":true}}
readJson2Array------------------
>uid=1,name=www,upwd=456,number=234.0,isStudent=false
>uid=5,name=tom,upwd=123,number=3.44,isStudent=false
writeMap2Json -----------
{"2":{"uid":1000,"uname":"xiao liao","upwd":"123","number":12.0,"isstudent":true},"1":{"uid":1000,"uname":"xiao liao","upwd":"123","number":12.0,"isstudent":true}}
Let's try one by one, the above is also my test code
[java] view plaincopy
- Entity class:
- /*
- * @project java
- * @package
- * @file Student.java
- * @version 1.0
- * @author Liao Yiping
- * @time 2011-11-8 03:01:08 AM
- */
- public class Student {
- /*
- *
- * Class Descripton goes here.
- *
- * @class Student
- * @version 1.0
- * @author Liao Yiping
- * @time 2011-11-8 03:01:08 AM
- */
- private int uid;
- private String uname;
- private String upwd;
- private double number;
- private boolean isstudent;
- public int getUid() {
- return uid;
- }
- public void setUid(int uid) {
- this.uid = uid;
- }
- public String getUname () {
- return uname;
- }
- public void setUname(String uname) {
- this.uname = uname;
- }
- public String getUpwd() {
- return upwd;
- }
- public void setUpwd(String upwd) {
- this.upwd = upwd;
- }
- public double getNumber() {
- return number;
- }
- public void setNumber(double number) {
- this.number = number;
- }
- public boolean isIsstudent() {
- return isstudent;
- }
- public void setIsstudent (boolean isstudent) {
- this.isstudent = isstudent;
- }
- @Override
- public String toString() {
- return "uid="+uid+",name="+uname+",upwd="+upwd+",number="+number+",isStudent="+isstudent;
- }
- }