jackson使用

Jackson是java中众多json处理工具的一个,比起常见的Json-lib,Gson要快一些。

jsckson官方地址

 

http://jackson.codehaus.org/

 里面可以下载Jackson的Jar包  注意jackson依赖:Apache的commons-loggin

 JSON的三种处理方式 

Jackson提供了三种可选的JSON处理方法(一种方式及其两个变型):

  • 流式 API(也称为"增量分析/生成") 读取和写入 JSON 内容作为离散事件。

    • org.codehaus.jackson.JsonParser 读, org.codehaus.jackson.JsonGenerator 写。

    • StAX API 的激励。

  • 树模型 :提供一个 JSON 文档可变内存树的表示形式。

    • org.codehaus.jackson.map.ObjectMapper 生成树 ;树组成 JsonNode 节点集。

    • 树模型类似于 XML DOM。
  • 数据绑定: JSON和POJO相互转换,基于属性访问器规约或注解。

    • 有 两种变体: 简单 和 完整 的数据绑定:

    • 简单数据绑定: 是指从Java Map、List、String、Numbers、Boolean和空值进行转换

    • 完整数据绑定 :是指从任何 Java bean 类型 (及上文所述的"简单"类型) 进行转换

    • org.codehaus.jackson.map.ObjectMapper 对两个变种,进行编组(marshalling )处理 (写入 JSON) 和反编组(unmarshalling ,读 JSON)。

    • JAXB激励下的基于注释的 (代码优先)变种。

从使用的角度来看,总结这些3 种方法的用法如下:

  • 流 API: 性能最佳的方式 (最低开销、 速度最快的读/写; 其它二者基于它实现)。

  • 数据绑定 :使用最方便的方式。

  • 树模型: 最灵活的方式


一、数据绑定方式(常用且简单)

1.bean --> json

 

public static String beanToJson(Object obj) throws IOException {   
    // 这里异常都未进行处理,而且流的关闭也不规范。开发中请勿这样写
        ObjectMapper mapper = new  ObjectMapper();  
        StringWriter writer = new StringWriter();   
        JsonGenerator gen = new JsonFactory().createJsonGenerator(writer);   
        mapper.writeValue(gen, obj);   
        gen.close();   
        String json = writer.toString();   
        writer.close();   
        return json;   
    }  

 2.json --> bean

 

        /**
	 * JSON转换为对象
	 * @param json
	 * @param cls
	 * @return
	 */
	public static Object json2Obj(String json,Class<?> cls){
		ObjectMapper mapper = new ObjectMapper();
		try {
    		return mapper.readValue(json, cls);
		}  catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值