Java JSON – Convert Java Object To / From JSON (Jackson)

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

 

核心代码:

 

[java][/java] view plaincopy

  1. //1. Convert Java object to JSON format
  2. ObjectMapper mapper = new ObjectMapper();
  3. mapper.writeValue(new File(“c:\\user.json”), user);

 

[java][/java] view plaincopy

  1. //2. Convert JSON to Java object
  2. ObjectMapper mapper = new ObjectMapper();
  3. User user = mapper.readValue(new File(“c:\\user.json”), User.class);

 

以下为具体例子:

一. POJO User.java

 

[java][/java] view plaincopy

  1. package com.jiangge.jkstest;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. public class User {
  5.     private int age = 23;
  6.     private String name = “jiangge”;
  7.     private String qqNum = “499065469”;
  8.     private List<String> message = new ArrayList<String>() {
  9.         {
  10.             add(“msg 1”);
  11.             add(“msg 2”);
  12.             add(“msg 3”);
  13.         }
  14.     };
  15.     public int getAge() {
  16.         return age;
  17.     }
  18.     public void setAge(int age) {
  19.         this.age = age;
  20.     }
  21.     public String getName() {
  22.         return name;
  23.     }
  24.     public void setName(String name) {
  25.         this.name = name;
  26.     }
  27.     public List<String> getMessage() {
  28.         return message;
  29.     }
  30.     public void setMessage(List<String> message) {
  31.         this.message = message;
  32.     }
  33.     public String getqqNum() {
  34.         return qqNum;
  35.     }
  36.     public void setqqNum(String qq) {
  37.         this.qqNum = qq;
  38.     }
  39.     @Override
  40.     public String toString() {
  41.         return “User [age=” + age + “, name=” + name + “, message=” + message
  42.                 + “]”;
  43.     }
  44. }

 

 

 

二. Java Object to JSON
Convert an “user” object into JSON formatted string, and save it into a file “user.json“.

[java][/java] view plaincopy

  1. package com.jiangge.jkstest;
  2. import java.io.File;
  3. import java.io.IOException;
  4. import com.fasterxml.jackson.core.JsonGenerationException;
  5. import com.fasterxml.jackson.databind.JsonMappingException;
  6. import com.fasterxml.jackson.databind.ObjectMapper;
  7. //To make this work with the latest (1.9.3) Jackson,
  8. //there must be getters and setters for the members in the User class.
  9. public class JacksonExampleToJson {
  10.     public static void main(String[] args) {
  11.         User user = new User();
  12.         ObjectMapper objMapper = new ObjectMapper();
  13.         try {
  14.             // convert user object to json string, and save to a file
  15.             objMapper.writeValue(new File(“c:\\user.json”), user);
  16.             // display to console
  17.             System.out.println(objMapper.writeValueAsString(user));
  18.         } catch (JsonGenerationException e) {
  19.             e.printStackTrace();
  20.         } catch (JsonMappingException e) {
  21.             e.printStackTrace();
  22.         } catch (IOException e) {
  23.             e.printStackTrace();
  24.         }
  25.       }
  26. }

控制台输出:

{“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.

 

[java][/java] view plaincopy

  1. package com.jiangge.jkstest;
  2. import java.io.File;
  3. import java.io.IOException;
  4. import com.fasterxml.jackson.core.JsonGenerationException;
  5. import com.fasterxml.jackson.databind.JsonMappingException;
  6. import com.fasterxml.jackson.databind.ObjectMapper;
  7. public class JacksonExampleRead {
  8.     public static void main(String[] args) {
  9.         ObjectMapper objMapper = new ObjectMapper();
  10.         try {
  11.             // read from file, convert it to user class
  12.             User user = objMapper.readValue(new File(“c:\\user.json”), User.class);
  13.             // display to console
  14.             System.out.println(user);
  15.         } catch (JsonGenerationException e) {
  16.             e.printStackTrace();
  17.         } catch (JsonMappingException e) {
  18.             e.printStackTrace();
  19.         } catch (IOException e) {
  20.             e.printStackTrace();
  21.         }
  22.       }
  23. }

控制台输出:

 

User [age=23, name=jiangge, message=[msg 1, msg 2, msg 3]]

标签