Jackson学习对象与JSON互相转化

注:由于水平有限,欢迎指正。
简介:Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。

一、准备工作
1、 下载依赖库jar包
Jackson的jar all下载地址:http://jackson.codehaus.org/1.7.6/jackson-all-1.7.6.jar
然后在工程中导入这个jar包即可开始工作
官方示例:http://wiki.fasterxml.com/JacksonInFiveMinutes
直接下载:http://download.csdn.net/download/u014802518/8909231

本篇简介如何使用Jackson进行Java对象与JSON的互相转换

/**Student类:*/
public class Students {
    /**编号*/
    private int id; 
    /**名称*/
    private String name; 
    /**性别*/
    private String gender; 
    public Students(){}
    public Students(int id, String name, String gender) {
        this.id = id;
        this.name = name;
        this.gender = gender;
    }
    @Override
    public String toString() {
        return "Students [id=" + id + ", name=" + name + ", gender=" + gender+ "]";
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getGender() {
        return gender;
    }
    public void setGender(String gender) {
        this.gender = gender;
    }
}

示例1:把Java对象转换为Json格式字符串

public static void main(String[] args) throws JsonGenerationException
, JsonMappingException, IOException {
        ObjectMapper mapper = new ObjectMapper();
        Students stu = new Students(100,"张三","男");
        String stuJson= mapper.writeValueAsString(list);
        System.out.println(stuJson);
}

运行结果:
示例1结果图:

示例2:把Json格式字符串转换为对应的Java对象

public static void main(String[] args) throws JsonGenerationException
, JsonMappingException, IOException {
        ObjectMapper mapper = new ObjectMapper();
        String strJson = "{\"name\":\"张三\",\"id\":100,\"gender\":\"女\"}";
        Students stu = mapper.readValue(strJson, Students.class);  
        System.out.println(stuJson);
}

ObjectMapper对象的readValue方法,需要提供2个参数。
第一个参数就是解析的JSON字符串,
第二个参数是即将将这个JSON解析为什么Java对象。
运行结果:
示例2结果图

示例3:把Java对象转换为Json

public static void main(String[] args) throws JsonGenerationException
, JsonMappingException, IOException {
        ObjectMapper mapper = new ObjectMapper();
        Students stu = new Students(520,"魏敏","女");
        mapper.writeValue(System.out,stu );    //输出 PrintStream流
}

objectMapper的writeValue方法可以将一个Java对象转换成JSON。
参数一:需要提供一个’输出流’,转换后可以通过这个流来输出转换后的内容。
或是提供一个File,将转换后的内容写入到File中。
当然,这个参数也可以接收一个JSONGenerator,然后通过JSONGenerator来输出转换后的信息。
参数二:将要被转换的Java对象。
如果用三个参数的方法,那么是一个SerializationConfig。这个config可以提供一些转换时的规则,过指定的Java对象的某些属性进行过滤或转换等。详情:http://blog.csdn.net/sdyy321/article/details/40298081
运行结果:
示例3结果图

在使用ObjectMapper对象readValue或者writeValue的时候,JSON可以以字符串的形式传入,也可以以文件的形式传入,官方的例子是让将JSON保存在文件中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值