zoukankan      html  css  js  c++  java
  • [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

    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
    人生就是一局不能Again的DOTA
  • 相关阅读:
    C# 还原SQL数据库(非存储过程方式)
    C# 无边框窗体移动代码
    SQL 2008 R2 数据库镜像操作
    序列号
    Oracle VM VirtualBox 随系统自动启动虚拟机的方法
    SQL每个用户最后的一条记录
    JS判断是否在微信浏览器打开
    使用device.js检测设备并实现不同设备展示不同网页
    check单选框多个全选与取消全选
    判断滚动是否到达底部
  • 原文地址:https://www.cnblogs.com/hellenism/p/3643087.html
Copyright © 2011-2022 走看看