`
sunny3super
  • 浏览: 3355 次
  • 来自: ...
社区版块
存档分类
最新评论

利用jackson 序列化和反序列化java对象

阅读更多

Spring MVC 支持  rest 风格架构,而最简单的方式就是使用 @ResponseBody 序列化成json。

spring mvc 默认@responsebody 自带的就是jackson 库,利用他来序列化和反序列化java 对象。在用这个之前,以前用过jsonlib,以及 GSON, 作为个人来说,其实很喜欢GSON , 这个东西用起来简单,功能貌似比jsonlib 强一点,而且不容易出错。但现在的项目用的是 jackson ,所以,还是得看看用这个怎么序列化和反序列化java对象,自己做了一个例子。

前提:假设有这样一个pojo 类

程序代码 程序代码


import java.util.ArrayList;
import java.util.List;

public class User {

    private int age = 29;
    private String name = "mkyong";
    private List<String> messages = new ArrayList<String>() {
        {
            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();

    }

  }

}

本文来源: 利用jackson序列化,反序列化java 对象

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics