利用jackson 序列化和反序列化java对象
By:Roy.LiuLast updated:2013-07-29
spring mvc 默认@responsebody 自带的就是jackson 库,利用他来序列化和反序列化java 对象。在用这个之前,以前用过jsonlib,以及 GSON, 作为个人来说,其实很喜欢GSON , 这个东西用起来简单,功能貌似比jsonlib 强一点,而且不容易出错。但现在的项目用的是 jackson ,所以,还是得看看用这个怎么序列化和反序列化java对象,自己做了一个例子。
前提:假设有这样一个pojo 类
一,java 对象序列化成json
二、json 反序列化成 java 对象
前提:假设有这样一个pojo 类
import java.util.ArrayList; import java.util.List; public class User { private int age = 29; private String name = "mkyong"; private Listmessages = new ArrayList () { { add("msg 1"); add("msg 2"); add("msg 3"); } }; //getter and setter methods @Override public String toString() { return "User [age=" + age + ", name=" + name + ", " + "messages=" + messages + "]"; } }
一,java 对象序列化成json
import java.io.File; import java.io.IOException; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; public class JacksonExample { public static void main(String[] args) { User user = new User(); ObjectMapper mapper = new ObjectMapper(); try { // convert user object to json string, and save to a file mapper.writeValue(new File("c:\\user.json"), user); // display to console System.out.println(mapper.writeValueAsString(user)); } catch (JsonGenerationException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
二、json 反序列化成 java 对象
import java.io.File; import java.io.IOException; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; public class JacksonExample { public static void main(String[] args) { ObjectMapper mapper = new ObjectMapper(); try { // read from file, convert it to user class User user = mapper.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(); } } }
From:一号门
Previous:ajax 返回json 在ie 下提示下载的解决办法
COMMENTS