转换JSON工具——Jackson的简单使用

  什么是Jackson

    可以轻松实现Java对象与JSON字符串的转换

  准备工作:导包

    Jackson的jar all下载地址:http://jackson.codehaus.org/1.7.6/jackson-all-1.7.6.jar

  1.实体对象转JSON  

    jackson使用getter方法定位属性(而不是字段)
     可以通过添加注解 @JsonIgnore 使某些getter来进行忽略

  将对象或集合转为json字符串

package cn.jackson;

import java.io.IOException;
import java.util.Arrays;
import java.util.List;

import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.annotate.JsonIgnore;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;

public class Customer {

    private String name;
    private String id;

    public Customer() {
        super();
    }
    public Customer(String name, String id) {
        super();
        this.name = name;
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    @JsonIgnore
    public String getCity(){
        return "北京";
    }
    public String getBirth(){
        return "1988";
    }

    public static void main(String[] args) throws JsonGenerationException, JsonMappingException, IOException {
        //导包
        //创建ObjectMapper对象
        ObjectMapper mapper = new ObjectMapper();
        //
        Customer cust = new Customer("jackson", "1001");
        String jsonStr = mapper.writeValueAsString(cust);
        System.out.println(jsonStr);

        List<Customer> list = (List) Arrays.asList(cust,new Customer("33","离魂计"));
        String jsonStrList = mapper.writeValueAsString(list);
        System.out.println(jsonStrList);
        /**
         * jackson使用getter方法定位属性
         * 可以通过添加注解 @JsonIgnore 使某些getter来进行忽略
         */
    }
}

  结果:

{"name":"jackson","id":"1001","birth":"1988"}
[{"name":"jackson","id":"1001","birth":"1988"},{"name":"33","id":"离魂计","birth":"1988"}]

  于是ajax_day02可以转为使用Jackson简化:

    ObjectMapper mapper=new ObjectMapper();
        String result=mapper.writeValueAsString(sc);

  2.JSON字符串转对象

ObjectMapper mapper = new ObjectMapper();
        String json = "{\"name\":\"jackson\",\"id\":\"1001\"}";
        Customer c = mapper.readValue(json, Customer.class);
        System.out.println(c.getId());

  //注意"的转义操作

时间: 2024-10-12 12:18:40

转换JSON工具——Jackson的简单使用的相关文章

Json解析工具Jackson(简单应用)

概述    Jackson库(http://jackson.codehaus.org),是基于Java语言的开源json格式解析工具,整个库(使用最新的2.2版本)包含3个jar包:    jackson-core.jar--核心包(必须),提供基于"流模式"解析的API.    jackson-databind--数据绑定包(可选),提供基于"对象绑定"和"树模型"相关API.    jackson-annotations--注解包(可选),提

Jackson 框架,轻易转换JSON

Jackson 框架,轻易转换JSON Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json.xml转换成Java对象. 前面有介绍过json-lib这个框架,在线博文:http://www.cnblogs.com/hoojo/archive/2011/04/21/2023805.html 相比json-lib框架,Jackson所依赖的jar包较少,简单易用并且性能也要相对高些.而且Jackson社区相对比较活跃,更新速度也比较快. 一.准备工作 1. 下

Jackson 框架,轻易转换JSON(转)

Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json.xml转换成Java对象. 相比json-lib框架,Jackson所依赖的jar包较少,简单易用并且性能也要相对高些.而且Jackson社区相对比较活跃,更新速度也比较快. 一.准备工作 1. 下载依赖库jar包 Jackson的jar all下载地址:http://jackson.codehaus.org/1.7.6/jackson-all-1.7.6.jar 然后在工程中导入这个jar包即可开始工作

FastJson、Jackson、Gson进行Java对象转换Json的细节处理

前言 Java对象在转json的时候,如果对象里面有属性值为null的话,那么在json序列化的时候要不要序列出来呢?对比以下json转换方式 一.fastJson 1.fastJson在转换java对象为json的时候,默认是不序列化null值对应的key的 也就是说当对象里面的属性为空的时候,在转换成json时,不序列化那些为null值的属性 具体案例如下: AutoPartsSearchRequest 有以下属性: public static void main(String[] args

使用fastjson转换json的简单例子

pom添加依赖: <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.1.41</version> </dependency> 代码: package JsonTest.JsonTest; import java.util.ArrayList; import java.util.Hash

Java中json工具对比分析

Java中几个json工具分析 1, 环境 JDK1.6+IDE(IntelliJ IDEA)+windowsXP+GBK编码 2,分析对象 jackson1.8.2 http://jackson.codehaus.org/ gson1.7.1 http://code.google.com/p/google-gson/ jsob_lib2.4 http://json-lib.sourceforge.NET/ 3,使用实例          用两个bean进行测试,两个bean都嵌套有数组和对象,

两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)

本篇文章主要介绍了"两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)",主要涉及到两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)方面的内容,对于两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)感兴趣的同学可以参考一下. 近日做一些性能优化工作,在挑选JSON类库时,发现除了一般常用的JSON-lib外,还有一款号称性能最快的JSON处理器Jackson,于是用上了刚学会的JMeter,对这两个类库进行

JSON工具学习记录--FastJSON

最近做项目,总是与json打交道,在用了即可json工具后,个人认为fastJson最好用,很方便,API也清晰可见,所以记录下使用方法,给需要的人提供帮助.(部分摘抄自网络) 一.API入口 Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成. public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArr

JSON工具学习记录--FastJSON循环引用问题

JSON工具学习记录–FastJSON循环引用问题 标签(空格分隔): fastjson 最近基于他人项目做二次开发,遇到了循环引用的问题,简单来说A引用了B,B引用了C,C引用了A,那么转换json就会无休止的转换下去. 更复杂的情况,A中引用了B,B中引用了一个A的集合,比如广告引用了广告类型,广告类型里面又有该类型下的所属广告. 1.构造情景 这种又叫做双向引用,个人感觉这种设计本身就不是很合理,当然还要看具体使用场景了. 广告类: /** * @author Niu Li * @date