簡體   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