android jackson xml,[Android学习笔记]jackson库的使用
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 学习笔记: 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+shift+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.01.20
参考文献 什么是I帧,P帧,B帧 图文详解YUV420数据格式 RGB565 与 RGB888的相互转换 最简单的基于FFmpeg的libswscale的示例(YUV转RGB)
PHP图形计算器(计算三角形矩形周长面积)
运用PHP面向对象的知识设计一个图形计算器,同时也运用到了抽象类知识,这个计算器可以计算三角形的周长和面积以及矩形的周长和面积.本图形计算器有4个页面:1.PHP图形计算器主页index.php; ...
如何在AD6(altium designer 6.x)中设置PCB大小
做一块板子,体积比较的大(长度有20CM),而AD默认的长度只有15cm,满足不了本人要求.在网上找到了解决方法: 先在Mechanical(机械层,如Mechanical1)下绘制一个板框,也就是你 ...
WPF ;接收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库的使用相关推荐
- Android(java)学习笔记176: 远程服务的应用场景(移动支付案例)
一. 移动支付: 用户需要在移动终端提交账号.密码以及金额等数据 到 远端服务器.然后远端服务器匹配这些信息,进行逻辑判断,进而完成交易,返回交易成功或失败的信息给移动终端.用户提交账号. ...
- Android日常开发 - FlexboxLayout学习笔记
Android日常开发 - FlexboxLayout学习笔记 Android日常开发使用FlexboxLayout实现流式布局的效果,FlexboxLayout与h5中的flex使用十分相似,都是将 ...
- Android Studio下载搭建学习笔记01
Android Studio下载搭建学习笔记01 下载Android Studio 安装Android Studio 进入安装向导 选择安装组件 选择安装位置 选择文件菜单 等待安装 启动并配置And ...
- STM32 HAL库学习笔记1-HAL库简介
STM32 HAL库学习笔记1-HAL库简介 HAL库 SPL 库 和 HAL 库两者相互独立,互不兼容.几种库的比较如下 目前几种库对不同芯片的支持情况如下 ST 中文官网上有一篇<关于ST库 ...
- Android高级终端开发学习笔记(《疯狂Android讲义》第2章-第10章)
Android疯狂讲义前10章知识点总结 /-------------------------10-31号晚上学习笔记----------------------------/ 在设置了最小支持版本为 ...
- Android高级终端开发学习笔记(《疯狂Android讲义》第11章-第17章)
Android高级终端开发笔记 2021/6/19 下午 13:34开始 多媒体应用开发 Android支持的音频格式有:MP3 WAV 3GP等.支持的视频格式有MP4 3GP等. 多媒体数据既可以 ...
- spring学习笔记---Jackson的使用和定制
http://www.cnblogs.com/mumuxinfei/p/4761374.html **************************************** 前言: JAVA总是 ...
- Android开发入门之学习笔记(三):程序窗口的布局
2019独角兽企业重金招聘Python工程师标准>>> Android应用程序的用户界面可以看作是由View和View Group组成的,从字面意思上就可以看出,View Group ...
- [Android]Android P(9) WIFI学习笔记 - HAL (1)
目录 前文回顾 前言 入口 WifiNative 初始化 打开WIFI IWifiChip IWifiCond ISupplicant 前文回顾 WIFI学习笔记 - Framework (1) WI ...
最新文章
- 求助大神!怎样除去XML节点反复的值的数据
- 《UML面向对象设计基础》—第1章1.2节信息/实现隐藏
- MSSQL 2005 DML触发器
- 编程实现 4 条重写规则,可生成半法式和法式
- Java学习笔记_多态/内部类
- 显示三维图片序列_SLAM结合三维检测
- python获取坐标颜色,python – 根据一组坐标的数据着色地图
- Python3 内建模块 hashlib、itertools、HTMLParser、urllib
- dedecms5.7添加栏目时以简拼作目录名 以拼音首字母作文件夹名称
- css easyui,对比easyui和jwwui css
- c语言mud文字武侠游戏,文字武侠mud游戏,纯文字武侠mud游戏手机版预约 v1.0-手游汇...
- protues仿真器51单片机定时器内部定时方式
- Linux(七)DNS域名解析服务器学习
- 暴力破解:破解强力保护、IP 封锁(连续提交 3 次错误登录封IP 的情况下)
- xmanager 5下载安装
- 使用FFmpeg4android 实现视频 水印 剪切 压缩 旋转
- C语言中的数组名取地址
- 华为智慧搜索 v9.1.2.300
- unity3d实现场景右下角人物小地图(可显示出地图上人物的位置以及boss或者其他重要坐标的小图标)
- 由MAVEN入手浅谈项目构建与管理
热门文章
- mysql删除用户的命令_mysql如何删除用户?
- 计算机网络概念梳理 第一章
- 【附源码】计算机毕业设计java忻府区饭中有豆粮油销售系统设计与实现
- 基于SSM的线上电子文件资源下载系统JavaWeb电子资源管理系统(源码调试+讲解+文档)
- soapui 乱码_在soapui上踩过的坑
- PC网站接入微信登陆流程二:创建并申请网站应用,获取开发必要的AppID,AppSecret 和 填写 授权回调域
- 2022年驾驶员考试挖掘机司机考试模拟试题卷及答案
- 小白篇之京东直播如何用专业设备开始直播(手机端、PC端)
- 一篇文章带你了解面积图
- SFSCB-A25 后备保护器 一体化SPD智能浪涌保护器 生产厂家 四川项目应用