簡體   English   中英

Java和Jersey使用類別ID作為鍵的類別的JSON反序列化

[英]JSON de-serialization of categories with categoryID as key with Java and Jersey

我們正在使用REST Web服務(Shopware)來獲取產品信息。 我們的問題是類別始終為空。

電線上的json看起來像這樣:

{
   "data":{
      "id":3,
      "mainDetail":{
         "id":3,
         "articleId":3,
         "categories":{
            "14":{
               "id":14,
               "name":"Edelbr\u00e4nde"
            },
            "21":{
               "id":21,
               "name":"Produktvergleiche & Filter"
            },
            "50":{
               "id":50,
               "name":"Brandies"
            }
         },
         "success":true
      }
   }
}

我們的Articles類的定義如下:

@XmlElement(name = "categories")
public Category[] getCategories() {
       return categories;
}

public void setCategories(Category[] categories) {

       this.categories = categories;
}



    Articles articles = apiClient.getClient().resource(apiClient.getBaseUrl() + this.getResourcePath()).queryParams(this.params).type(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON).get(Articles.class);

// this always returns null
Categories categories = articles.getCategories();  

我們可以訪問所有字段,而類別除外。 我們假設這是因為id是鍵,所以Jersey現在不再如何將它們映射到正確的類。

問題:

  1. 是否有此類類別的json表示法的名稱,這樣我就可以在Google中進行搜索了?

  2. 您是否有關於球衣注解,自定義類型適配器或類似的內容的提示,這些內容告訴反序列化器識別類別並填充類別集合?

重新發布Brian Roach的評論作為答案:

由於JSON中的“類別”不是數組(它是對象),因此不太可能映射到Java中的數組。 更改為:

Map<String,Category>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM