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反序列化

 

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函数中的输出就可以了。



你可能感兴趣的:(Jackson)