繁体   English   中英

如何在JAX-RS Jersey Restful Web服务中通过一次调用获取不同类型的JSON对象

[英]How to get different types of JSON objects form a single call in JAX-RS Jersey Restful web services

我想从一个服务调用中获得三种不同类型的对象(对象列表)。 可以从不同的调用中获取不同的对象。 一次通话就可以吗?

如果您要返回的不同对象的数量限制为3,则可以创建一个结果对象,该对象具有要返回的三个不同对象的属性

public class Result {

    private ResultOne resultOne;
    private ResultTwo resultTwo;
    private ResultThree resultThree;

    public ResultOne getResultOne() {
        return resultOne;
    }

    public void setResultOne(ResultOne resultOne) {
        this.resultOne = resultOne;
    }

    public ResultTwo getResultTwo() {
        return resultTwo;
    }

    public void setResultTwo(ResultTwo resultTwo) {
        this.resultTwo = resultTwo;
    }

    public ResultThree getResultThree() {
        return resultThree;
    }

    public void setResultThree(ResultThree resultThree) {
        this.resultThree = resultThree;
    }
}

如果要返回对象的真实列表,请参阅rest是否支持对象的arraylist?

这可以通过两种方式完成:方式1:为三种不同类型的对象创建所需的POJO类,您要返回此POJO类并将其作为Web服务调用的输出返回。

方式二:创建一个HashMap对象,将键和对应的对象放入HashMap中并返回该HashMap对象。 例如

HashMap < String, List < String >> multipleObjectReturn = new HashMap < String, List < String >> ();

List < String > listObject1 = new ArrayList < String > ();
listObject1.add("List 1 Value2");

multipleObjectReturn.put("List Object 1", listObject1);

List < String > listObject2 = new ArrayList < String > ();
listObject1.add("List 2 Value1");

multipleObjectReturn.put("List Object 2", listObject2);

最后,

return multipleObjectReturn.

上面的代码用于返回不同类型的列表对象。 如果要返回任何类型的对象,请在HashMap中使用对象类型代替List < String >

HashMap < String, Object > multipleObjectReturn = new HashMap < String, Object > ();

HashMap < String, String > mapObject1 = new HashMap < String, String > ();
mapObject1.put("Key1", "Value1");

multipleObjectReturn.put("ListObject1", listObject1);                                  
multipleObjectReturn.put("ListObject2", listObject2);                                  
multipleObjectReturn.put("MapObject1", mapObject1);

return multipleObjectReturn;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM