我有一个Jersey客户端调用第三方rest api并检索一些JSON。
{"A":1,"W":2,"List":[{"name":"John","amount":10.0}]}
之后,我需要将此JSON附加到我的响应类并在响应中将其返回。
@XmlRootElement
public class MyResponse {
private JsonObject body;
private String status;
我设法将来自第三方API的值分配给body
,但是发送的响应是这样的:
{
"status": "success",
"body": {
"entry": [
{
"key": "A",
"value": 1
} ,
{
"key": "W",
"value": 2
},
{
"key": "List",
"value": "[{\"name\":\"John\",\"amount\":10.0}]"
}
]
}
}
所以有两个主要问题,moxy正在生成key
和value
元素,而我希望它是key: value
,而且它还没有正确生成第二级对象API提供的JSON结构。
答案 0 :(得分:1)
MOXy是一个JAXB实现,而JsonObject
是JSON-P的一部分。 MOXy恰好能够处理JSON,但这是JAXB标准的专有扩展。据我所知,JSON-P和JAXB之间没有可用的默认映射。您看到这些key
/ value
条目的原因必须是JsonObject
扩展java.util.Map
,因此您将获得该类型的默认MOXy映射。
我认为您有以下可能性: