有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

转换Java。util。使用Jersey和JAXBElement映射到JSON对象

我目前正在尝试从Jersey输出JSON格式的映射。我以这种方式瞄准一个普通物体:

map: { key1 : value1, key2: value2 }

然而,泽西选择了一种更令人困惑的方式:

"storage":
  {"entry":[
    {"key":"IRON","value":792},
    {"key":"COPPER","value":2489},
    {"key":"CARDBOARD","value":14536}
    ]
  }
}

我使用JAXBElement成功地用自定义映射映射了一些值:

@XmlRootElement
public class MapDTO<K, V> {

    @XmlAnyElement
    private List<JAXBElement<V>> elements = new ArrayList<>();

    public MapDTO(){}

    public MapDTO(Map<K,V> map) {
        map.forEach((k, v) ->
                elements.add(
                        new JAXBElement(new QName(k.toString()), v.getClass(), v))
        );
    }
}

但是,由于某些原因,此操作的输出会生成key:Array的映射,其中每个key都显示单个元素的数组:

"storage":{
  "CIRCUITS":[3379992],
  "CARDBOARD":[84838963545],
  "COPPER_CABLE":[1673987]
}

有人知道为什么会这样,或者有没有更好的方法

我知道有人问过这个问题before,但是这个被接受的问题似乎不是解决方案,因为它无法编译,而其他解决方案似乎不起作用。既然这个问题已经有一年多的历史了,也许有人能给这个问题带来一些新的启示


共 (0) 个答案