gpt4 book ai didi

java - 使用Java和Jersey对以categoryID为键的类别进行JSON反序列化

转载 作者:太空宇宙 更新时间:2023-11-04 07:02:11 25 4
gpt4 key购买 nike

我们正在使用 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();

我们能够毫无问题地访问除类别之外的所有字段。我们假设这是因为 ids 是键,因此 Jersey 现在不知道如何将它们映射到正确的类。

问题:

  1. 是否有这种 json 类别表示法的名称,以便我可以在 google 中搜索某些内容?

  2. 您对 Jersey 注释、自定义类型适配器或类似的东西有任何提示吗?这些提示可以告诉反序列化器识别类别并填充我们的类别集合?

最佳答案

重新发布 Brian Roach 的评论作为答案:

since 'categories' in your JSON isn't an array (its an object), its unlikely its going to map to an array in java. Change it to:

Map<String,Category>

关于java - 使用Java和Jersey对以categoryID为键的类别进行JSON反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21941698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com