将嵌套的JSON对象解组为通用Java对象

时间:2014-01-26 22:30:13

标签: java json rest jaxb jersey

我正在使用Jersey(2.5.1)获取带有JAXB的RESTish API,以便将POSON封送到POJO或从POJO封送JSON。客户端将使用以下请求进行POST:

{
   "type":"myevent",
   "data":{
       "id":"123",
       "count":2
    }
}

我有一个'Event'类,它包含一个类型字符串和一个数据有效负载。

@XmlRootElement
public class Event {

    @XmlElement public String type;
    @XmlElement public JSONObject data;
    ...
}

'data'有效负载是一个JSON对象,但我不知道该对象的类型或对象的'schema'。我所知道的只是JSON。上面我有类型作为JSONObject,但这只是一个例子,也许这需要是对象?地图?还有别的吗?

我希望能够获取'data'有效负载并将其作为JSON保存在其他地方。

我考虑过为数据有效负载使用String,但是任何API客户端都需要对其进行编码,我需要在传递它之前对其进行解码。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我通常在后端使用字符串然后

    JSONObject json = new JSONObject(s); 

会从那个s创建一个json obj(你不需要解码)。

在客户端,我相信你只需要逃避“使用类似于在该字符串上应用的replaceAll函数