Я пытаюсь создать модуль REST API для Liferay, но у меня возникают проблемы при попытке генерировать ответы JSON из моих веб-сервисов.
Я хотел бы создать простой JSON, подобный этому:
{
"status": "ok",
"message": "News not found for ID: 5"
}
Но вместо этого вот что я получаю:
{
"parentResponse": {
"status": "ok",
"message": "News not found for ID: 5"
}
}
Вот мой класс POJO:
@XmlRootElement
public class ParentResponse {
public String status, message;
public Object item;
public ParentResponse() {
}
public ParentResponse(String status, String message, Object item) {
this.status = status;
this.message = message;
this.item = item;
}
}
Мой веб-сервис, который возвращает json:
// return a single news based on supplied ID
@GET
@Path("{id}")
@Produces("application/json")
public Response getNewsById(@PathParam("id") String id) {
ResponseBuilder builder;
try {
News news = findById(new Long(id));
if (news != null) {
builder = Response.ok(news);
}
else { // This is my POJO class returned as a JSON
ParentResponse parentResponse = new ParentResponse("ok", "News not found for ID: " + id, null);
builder = Response.status(Response.Status.NOT_FOUND).entity(parentResponse);
}
} catch (Exception e) {
e.printStackTrace();
}
return builder.build();
}
Итак, как мне получить JSON без корневого тега?Я попытался добавить (name = "") рядом с аннотацией @XmlRootElement, но это не сработало.