Jackson库一般用于序列化和反序列化操作,通常会涉及到的操作是:

1. Java Object -> Json String

2. Java Object -> Xml String

3. Json String -> Java Object

4. Xml String -> Java Object

JSON相关操作需要jar包:jackson-all-x.x.x.jar

http://jackson.codehaus.org/

XML相关操作需要jar包:

要在Android下使用Jackson,则需要:

jackson-dataformat-android

aalto-xml

stax-api

stax2-api

4个jar包

下载地址:

jackson-dataformat-android

stax-api&stax2-api

aalto-xml

在此可下载所有相关jar包:

http://pan.baidu.com/s/1pJ9DyGV


Ex:

SerializationHelper.java

package com.example.utils;

import java.io.IOException;

import com.fasterxml.aalto.stax.InputFactoryImpl;
import com.fasterxml.aalto.stax.OutputFactoryImpl;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.xml.JacksonXmlModule;
import com.fasterxml.jackson.dataformat.xml.XmlFactory;
import com.fasterxml.jackson.dataformat.xml.XmlMapper; public class SerializationHelper
{
private static ObjectMapper objectMapper = new ObjectMapper(); /**
* Java Object to JSON String
*
* @param object
* @return
*/
public static String ObjectToJson(Object object)
{
String result = null; try
{
result = objectMapper.writeValueAsString(object); } catch (JsonProcessingException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} return result;
} /** JSON to Java Object
*
* @param jsonString
* @param clazz
* @return
*/
public static <T> T JsonToObject(String jsonString, Class<T> clazz)
{
T result = null; try
{
result = objectMapper.readValue(jsonString, clazz); } catch (JsonParseException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JsonMappingException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} return result;
} /**
* Java Object to XML String
*
* @param object
* @return
*/
public static String ObjectToXml(Object object)
{
String result = null; XmlFactory factory = new XmlFactory(new InputFactoryImpl(), new OutputFactoryImpl()); JacksonXmlModule module = new JacksonXmlModule(); XmlMapper mapper = new XmlMapper(factory, module); try
{
result = mapper.writeValueAsString(object);
} catch (JsonProcessingException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} return result;
} /** XML to Java Object
*
* @param xml
* @param clazz
* @return
*/
public static <T> T XmlToObject(String xml, Class<T> clazz)
{
T result = null; XmlFactory factory = new XmlFactory(new InputFactoryImpl(), new OutputFactoryImpl());
JacksonXmlModule module = new JacksonXmlModule();
XmlMapper mapper = new XmlMapper(factory, module); try
{
result = mapper.readValue(xml, clazz);
} catch (JsonParseException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JsonMappingException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} return result;
}
}

SerializationHelper

MainActivity.java

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); Student st = new Student();
st.setName("stephen lee");
st.setAge(123);
st.setId(1); String jsonString = SerializationHelper.ObjectToJson(st);
String xmlString = SerializationHelper.ObjectToXml(st); Toast.makeText(this, jsonString, Toast.LENGTH_SHORT).show();
Toast.makeText(this, xmlString, Toast.LENGTH_SHORT).show(); Student stFromJson = SerializationHelper.JsonToObject(jsonString, Student.class);
Student stFromXml = SerializationHelper.XmlToObject(xmlString, Student.class); Toast.makeText(this, "stFromJson:" + stFromJson.getName(), Toast.LENGTH_SHORT).show();
Toast.makeText(this, "stFromXml:" + stFromXml.getName(), Toast.LENGTH_SHORT).show();
}

MainActivity.java

最新文章

  1. Requests 乱码
  2. python enumerate用法
  3. Unix及类Unix系统文本编辑器的介绍
  4. [修正] iOS 10 使用相机及相簿闪退的问题修正
  5. wordpress取文章时间
  6. 有趣的代码: fixTypeof
  7. ASP.NET 使用AJAX让GridView的数据行显示提示框(ToolTip)
  8. MySQL SQL模式匹配
  9. 第一部分 mongodb 基础篇
  10. Linux下eclipse的安装以及配置
  11. 推荐一个markdown编辑器-Haroopad
  12. hibernate中使用HQL进行数据库查询
  13. javascript 学习总结(二)Array数组
  14. HDU 5908 Abelian Period (BestCoder Round #88 模拟+暴力)
  15. JavaScript在智能手机上的应用-测试是否支持滑动事件
  16. yum no key
  17. rk3128 通过串口控制 GPIO
  18. vue 安装插件Refusing to install package with name &#39;???&#39;
  19. Jmeter工具
  20. linux ----&gt; centos 网络、tomcat、vi、等等的配置和使用

热门文章

  1. opencv分水岭算法对图像进行切割
  2. textarea内容有换行时存入数据库丢失问题的解决 (转载)
  3. ASP.NET Core Authorization
  4. 1941. Scary Martian Word
  5. JS将秒换成时分秒
  6. UVA 322 ships (POJ 1138)
  7. redhat6.3+oracle11GR2 单库 安装规划
  8. 【Unity3D】【NGUI】UICamera
  9. 四种方法解决DIV高度自适应问题
  10. js之checkbox的代码全选/全不选,使用id获取元素,而不是name