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

XML相关操作需要jar包:

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

jackson-dataformat-android

aalto-xml

stax-api

stax2-api

4个jar包

下载地址:

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

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 JsonToObject(String jsonString, Class 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 XmlToObject(String xml, Class 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

Android学习笔记36:使用SQLite方式存储数据

在Android中一共提供了5种数据存储方式,分别为: (1)Files:通过FileInputStream和FileOutputStream对文件进行操作.具体使用方法可以参阅博文

【转】 Pro Android学习笔记(七四):HTTP服务(8):使用后台线程AsyncTask

目录(?)[-] 5秒超时异常 AsyncTask 实现AsyncTask抽象类 对AsyncTask的调用 在哪里运行 其他重要method 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注 ...

【转】 Pro Android学习笔记(六九):HTTP服务(3):HTTP POST MultiPart

目录(?)[-] 建立测试环境 开发环境导入第三方JAR HTTP Post Multipart小例子 HTTP POST不仅可以通过键值对传递参数,还可以携带更为复杂的参数,例如文件.HTTP Po ...

Android学习笔记(一)

目录 Android学习笔记(一) 一.JDK.Android SDK 二.部分项目结构 三.字符串引用 四.外层build.gradle详解 五.app->build.gradle详解 六.日 ...

Android 学习笔记之Volley(七)实现Json数据加载和解析...

学习内容: 1.使用Volley实现异步加载Json数据...   Volley的第二大请求就是通过发送请求异步实现Json数据信息的加载,加载Json数据有两种方式,一种是通过获取Json对象,然后 ...

Android学习笔记进阶之在图片上涂鸦(能清屏)

Android学习笔记进阶之在图片上涂鸦(能清屏) 2013-11-19 10:52 117人阅读 评论(0) 收藏 举报 HandWritingActivity.java package xiaos ...

android学习笔记36——使用原始XML文件

XML文件 android中使用XML文件,需要开发者手动创建res/xml文件夹. 实例如下: book.xml==> <?xml version="1.0" enc ...

Android学习笔记之JSON数据解析

转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种 ...

udacity android 学习笔记&colon; lesson 4 part b

udacity android 学习笔记: lesson 4 part b 作者:干货店打杂的 /titer1 /Archimedes 出处:https://code.csdn.net/titer1 ...

随机推荐

关于SSIS中解密FTP字符串的方法

FTP(File Transfer Protocol),是文件传输协议的简称.用于Internet上的控制文件的双向传输.同时,它也是一个应用程序(Application).用户可以通过它把自己的PC ...

关闭ctrl&plus;shift&plus;d截图

关闭ctrl+shift+d截图,最近用sublime text3的时候,用ctrl+shift+d,总是跳出来截图,找了半天,原来是百度浏览器的截图功能快捷键是ctrl+shift+d, 关掉即可

RabbitMQ集群环境搭建-4

确保成功安装好JDK,erlang,RabbitMQ等,并且RabbitMQ能正常启动,多台电脑之间能互相ping得通. 1. 安装 erlang.rabbitmq 如: 192.168.1.1.19 ...

详解YUV与RGB数据格式-2016&period;01&period;20

参考文献 什么是I帧,P帧,B帧 图文详解YUV420数据格式 RGB565 与 RGB888的相互转换 最简单的基于FFmpeg的libswscale的示例(YUV转RGB)

PHP图形计算器(计算三角形矩形周长面积)

运用PHP面向对象的知识设计一个图形计算器,同时也运用到了抽象类知识,这个计算器可以计算三角形的周长和面积以及矩形的周长和面积.本图形计算器有4个页面:1.PHP图形计算器主页index.php;   ...

如何在AD6&lpar;altium designer 6&period;x&rpar;中设置PCB大小

做一块板子,体积比较的大(长度有20CM),而AD默认的长度只有15cm,满足不了本人要求.在网上找到了解决方法: 先在Mechanical(机械层,如Mechanical1)下绘制一个板框,也就是你 ...

WPF&nbsp&semi;接收exe传的值

原文:WPF 接收exe传的值 一,首先重载APP protected override void OnStartup(StartupEventArgs e)         {            ...

勇者斗恶龙 uva 11292(简单贪心)

思路:先将龙和士兵进行分别排序从小到大.然后,每次找当前最小龙的第一个大于它的骑手之后退出,开始下一个龙,重复上一次操作. #include #include

Flask 快速使用 进阶—— (2)

案例:可配置发送信息的系统 假如我们有这样的一个系统,可以发送短息,邮件和微信,后期可能还会增加一些平台,怎么才可以做到快速切换的去使用某种功能呢,在这里我会通过在配置文件中简单的配置就可以实现 在项 ...

Python创建随机用户名密码并存放于Access数据库

利用random库随机生成4到32位包含字母跟数字的用户名密码,利用win32com库连接到access数据库并写入table,要更改创建的用户名密码数量修改18行代码的数字即可. import wi ...

android jackson xml,[Android学习笔记]jackson库的使用相关推荐

  1. Android(java)学习笔记176: 远程服务的应用场景(移动支付案例)

    一. 移动支付:       用户需要在移动终端提交账号.密码以及金额等数据 到 远端服务器.然后远端服务器匹配这些信息,进行逻辑判断,进而完成交易,返回交易成功或失败的信息给移动终端.用户提交账号. ...

  2. Android日常开发 - FlexboxLayout学习笔记

    Android日常开发 - FlexboxLayout学习笔记 Android日常开发使用FlexboxLayout实现流式布局的效果,FlexboxLayout与h5中的flex使用十分相似,都是将 ...

  3. Android Studio下载搭建学习笔记01

    Android Studio下载搭建学习笔记01 下载Android Studio 安装Android Studio 进入安装向导 选择安装组件 选择安装位置 选择文件菜单 等待安装 启动并配置And ...

  4. STM32 HAL库学习笔记1-HAL库简介

    STM32 HAL库学习笔记1-HAL库简介 HAL库 SPL 库 和 HAL 库两者相互独立,互不兼容.几种库的比较如下 目前几种库对不同芯片的支持情况如下 ST 中文官网上有一篇<关于ST库 ...

  5. Android高级终端开发学习笔记(《疯狂Android讲义》第2章-第10章)

    Android疯狂讲义前10章知识点总结 /-------------------------10-31号晚上学习笔记----------------------------/ 在设置了最小支持版本为 ...

  6. Android高级终端开发学习笔记(《疯狂Android讲义》第11章-第17章)

    Android高级终端开发笔记 2021/6/19 下午 13:34开始 多媒体应用开发 Android支持的音频格式有:MP3 WAV 3GP等.支持的视频格式有MP4 3GP等. 多媒体数据既可以 ...

  7. spring学习笔记---Jackson的使用和定制

    http://www.cnblogs.com/mumuxinfei/p/4761374.html **************************************** 前言: JAVA总是 ...

  8. Android开发入门之学习笔记(三):程序窗口的布局

    2019独角兽企业重金招聘Python工程师标准>>> Android应用程序的用户界面可以看作是由View和View Group组成的,从字面意思上就可以看出,View Group ...

  9. [Android]Android P(9) WIFI学习笔记 - HAL (1)

    目录 前文回顾 前言 入口 WifiNative 初始化 打开WIFI IWifiChip IWifiCond ISupplicant 前文回顾 WIFI学习笔记 - Framework (1) WI ...

最新文章

  1. 求助大神!怎样除去XML节点反复的值的数据
  2. 《UML面向对象设计基础》—第1章1.2节信息/实现隐藏
  3. MSSQL 2005 DML触发器
  4. 编程实现 4 条重写规则,可生成半法式和法式
  5. Java学习笔记_多态/内部类
  6. 显示三维图片序列_SLAM结合三维检测
  7. python获取坐标颜色,python – 根据一组坐标的数据着色地图
  8. Python3 内建模块 hashlib、itertools、HTMLParser、urllib
  9. dedecms5.7添加栏目时以简拼作目录名 以拼音首字母作文件夹名称
  10. css easyui,对比easyui和jwwui css
  11. c语言mud文字武侠游戏,文字武侠mud游戏,纯文字武侠mud游戏手机版预约 v1.0-手游汇...
  12. protues仿真器51单片机定时器内部定时方式
  13. Linux(七)DNS域名解析服务器学习
  14. 暴力破解:破解强力保护、IP 封锁(连续提交 3 次错误登录封IP 的情况下)
  15. xmanager 5下载安装
  16. 使用FFmpeg4android 实现视频 水印 剪切 压缩 旋转
  17. C语言中的数组名取地址
  18. 华为智慧搜索 v9.1.2.300
  19. unity3d实现场景右下角人物小地图(可显示出地图上人物的位置以及boss或者其他重要坐标的小图标)
  20. 由MAVEN入手浅谈项目构建与管理

热门文章

  1. mysql删除用户的命令_mysql如何删除用户?
  2. 计算机网络概念梳理 第一章
  3. 【附源码】计算机毕业设计java忻府区饭中有豆粮油销售系统设计与实现
  4. 基于SSM的线上电子文件资源下载系统JavaWeb电子资源管理系统(源码调试+讲解+文档)
  5. soapui 乱码_在soapui上踩过的坑
  6. PC网站接入微信登陆流程二:创建并申请网站应用,获取开发必要的AppID,AppSecret 和 填写 授权回调域
  7. 2022年驾驶员考试挖掘机司机考试模拟试题卷及答案
  8. 小白篇之京东直播如何用专业设备开始直播(手机端、PC端)
  9. 一篇文章带你了解面积图
  10. SFSCB-A25 后备保护器 一体化SPD智能浪涌保护器 生产厂家 四川项目应用