Java Jersey/MOXy任意JSON属性
我有一个带有任意Java Jersey/MOXy任意JSON属性,java,json,jersey,moxy,Java,Json,Jersey,Moxy,我有一个带有任意JsonValue属性的bean,我需要从JSON封送/解封 public class MyBean { public String name; public JsonValue data; } 由于JsonValue是标准的javax.json.JsonValue,所以我希望MOXy能够立即封送/解封,而不是得到一个简单的字符串: { "name": "foo", "data": "{\"some\":\"json\"}" } 我期待的是: {
JsonValue
属性的bean,我需要从JSON封送/解封
public class MyBean {
public String name;
public JsonValue data;
}
由于JsonValue
是标准的javax.json.JsonValue
,所以我希望MOXy能够立即封送/解封,而不是得到一个简单的字符串:
{
"name": "foo",
"data": "{\"some\":\"json\"}"
}
我期待的是:
{
"name": "foo",
"data": {
"some": "json"
}
}
解组时,数据
变为null
。如何使用JsonValue
s并让MOXy按预期管理它们
(我需要坚持使用默认的Jersey/MOXy,因此不使用其他库。)注意:这不是答案(OP的解决方案)。在读到“我需要坚持默认的Jersey/MOXy”之前,我把它打了出来。本来要改成评论,但内容太多了。我将把它留给未来的读者。 对于
javax.json
类有一个。莫西不知道如何以你所期望的方式处理它们。不看任何源代码,我猜您看到的是来自JsonValue
实例的toString()
的值。如果无法处理该类型,就会发生这种情况。您将得到一个toString()
调用
即使您添加了我链接到的依赖项,您仍然存在不同提供者之间不交互的问题。需要发生的是,在MXY的中间序列化<代码> MyBea实例,如果它看到了我能想到的唯一解决方案是使用Jackson,而不是使用MOXy,它有一个支持
javax.json
的模块。如果您向Jackson注册该模块,它将知道如何处理javax.json
类型,“中间序列化”。您可以看一看,它描述了您应该采取的步骤,以便与Jackson合作。我也换成了Jackson。因为MOxy是Jersey的新默认JSON提供程序,所以我尝试坚持使用MOxy之后,我遇到了麻烦,因此遇到了更多的麻烦,直到我切换到MOxy,再也没有遇到任何问题。