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

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();

    }

  }

}


除非申明,文章均为一号门原创,转载请注明本文地址,谢谢!
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.