Java 中使用Jackson反序列化

摘要:
单击“刷新”以添加引用。

Build.gradle:

compile group: 'org.codehaus.jackson', name: 'jackson-mapper-lgpl', version: '1.9.13'
compile group: 'org.codehaus.jackson', name: 'jackson-core-lgpl', version: '1.0.1'

compile group: 'httpunit', name: 'httpunit', version: '1.3'

分别引用jackson包和WebConversation/WebResponse等发送WebRequest相关的包。 点这个刷新来添加引用。

Java 中使用Jackson反序列化第1张

Main中调用请求

 String url ="http://****"; // Api的接口

        NormalService normalService; //NormalService是用来接收API的反序列化类
        normalService = (NormalService)test.CallResetAPI(Class.forName("NormalService"),url,"GET");

下面是CallResetAPI部分,是用了Java中的泛型,关于Java的泛型请参照http://www.cnblogs.com/iyangyuan/archive/2013/04/09/3011274.html

import com.meterware.httpunit.WebConversation;
import com.meterware.httpunit.WebResponse;
import org.codehaus.jackson.map.ObjectMapper;

/**
 * Created by ygshen on 2015/3/3.
 */
public class test {
    public static <T> T CallResetAPI(Class<T> tClass, final String url, String method) throws Exception {

        WebConversation conversation = new WebConversation();
        WebResponse response = conversation.getResponse(url);
        String respStream = response.getText();
        return ReadObject(
                tClass,
                respStream);
    }


    private static <T> T ReadObject(
            Class<T> tClass,
            String stream) throws Exception {
        T data = tClass.newInstance();

        try {
            data = new ObjectMapper().readValue(stream,tClass);

        } catch (Exception e) {
            // Handle the problem
            throw e;
        }
        return data;
    }


}

下面是反序列化的类代码

import java.io.Serializable;
import java.util.List;

/**
 * Created by ygshen on 2015/3/3.
 */
public class NormalService implements Serializable
{
    public List<Service> serviceList;
    public int count;
    public String env;
    public Boolean success;
}


// Service部分代码

import java.io.Serializable;
import java.util.List;

/**
 * Created by ygshen on 2015/3/3.
 */

public class Service implements Serializable
{

    public String serviceCode;

    public String serviceName;
    public String serviceNamespace;
    public String serviceContacts;
    public List<ServiceEndpoint> endpointList;
}

/**
 * Created by ygshen on 2015/3/3.
 */
public class ServiceEndpoint {
    public String Test1;
    public String Test2;
    public String Test3;
}

  

这样只要测试Main函数中的输出就可以了。



免责声明:文章转载自《Java 中使用Jackson反序列化》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇网站如何制作301重定向杭电ACM题目分类下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Unity面试题汇总(第一部分)

一、什么是渲染管道? 答:就是告诉GPU一些数据,经过一系列的操作,得到最终要显示的数据。渲染管道中的很多步骤,总的来说是将几何物体从一个坐标系变换到另一个坐标系中去。 主要步骤如下: 本地坐标系 -- 经过世界变换矩阵 --> 世界坐标系 -- 经过视图变换矩阵 --> 视图坐标系 -- 经过投影变换矩阵 --> 投影坐标系 -- 经过...

java获取Json和http状态码

最近再做接口自动化测试,其中有几个方法比较重要 1.获取http状态码 /* * 返回接口状态码 * */ public static String getHttpCode(String url) { String code = null;...

手把手教你实现热更新功能,带你了解 Arthas 热更新背后的原理

摘自:https://www.cnblogs.com/goodAndyxublog/p/11880314.html 手把手教你实现热更新功能,带你了解 Arthas 热更新背后的原理 文章来源:https://studyidea.cn/java-hotswap 一、前言# 一天下午正在摸鱼的时候,测试小姐姐走了过来求助,说是需要改动测试环境 mock...

ClassLoader读取classpath目录下的文件

项目中的需求是根据配置文件创建一个页面,配置文件中配置一些图例或者搜索框。读取classpath目录下文件的方式有很多,且记录自己在项目中用到的一种方式。 ClassLoader主要是对类的请求提供服务,当jvm需要某个类时,它根据名称向ClassLoader请求获得这个类,然后ClassLoader返回给jvm这个类的class对象。ClassLoad...

Protobuf 语法指南

英文: Proto Buffers Language Guide 本指南描述了怎样使用protocol buffer 语法来构造你的protocol buffer数据,包括.proto文件语法以及怎样生成.proto文件的数据访问类。(本文只针对proto2的语法) 本文是一个参考指南——如果要查看如何使用本文中描述的多个特性的循序渐进的例子,请在http...

Android下得到APK包含信息

很多情况下,我们需要通过APK文件来得到它的一些信息。 (此时此APK不一定被安装了) 0. 基础知识:可以通过android.content.Context的方法 getPackageManager()得到一个PackageManager实例。PackageManager有一个方法:PackageInfo getPackageArchiveInfo (S...