я столкнулся вопрос, пытаясь вернуть ответ с объектом JSON в Джерси 2.Как я должен вернуть ответ JSON в Джерси 2
Ниже приводится фрагмент кода:
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import org.codehaus.jettison.json.JSONObject;
@Path("/message")
public class HelloWorld {
@Path("/getJson")
@GET
@Produces(MediaType.APPLICATION_JSON)
public Response getJSON() {
JSONObject object = null;
Response response = null;
try {
object = new JSONObject();
object.put("Name", "Bryan");
object.put("Age", "27");
response = Response.status(Status.OK).entity(object).build();
} catch (Exception e) {
System.out.println("error=" + e.getMessage());
}
return response;
}
}
Я получаю исключение:
No serializer found for class org.codehaus.jettison.json.JSONObject and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS)
Связанные должности посоветовали мне попробовать следующее.
Использование ObjectMapper и установить свойство mapper.configure (SerializationFeature.FAIL_ON_EMPTY_BEANS, ложь);: Мне не нужно использовать ObjectMapper в этом сценарии, так как я просто хочу вернуть объект json.
Попробуйте POJO вместо JSON Объект: Да POJO работает нормально, но это не то, что я хотел. Мне нужно вернуть Response с Json-объектом, который будет проанализирован кодом Java-скрипта.
Получить строку из JSONObject и установить эту строку в ответ –
@VikasSachdeva Спасибо за тонну. Оно работало завораживающе. не знаю, почему это не ударило меня. – Heisenberg