Статьи

Интеграция JAX-RS и JSON-P

JSON API обработки (JSON-P) , было введено в Java EE 7 . Он предоставляет стандартный API для работы с данными JSON и очень похож на свой аналог XML — JAXP . JSON-B (JSON Binding) API находится в разработке для Java EE 8 .

Поддержка JSON-P в JAX-RS 2.0

JAX-RS 2.0 (также является частью Java EE 7) имеет встроенную поддержку таких артефактов JSON-P, как JsonObject , JsonArray и JsonStructure, т. Е. Каждая реализация, совместимая с JAX-RS 2.0, будет предоставлять встроенные провайдеры сущностей для этих объектов. облегчает обмен данными JSON в приложениях JAX-RS

Несколько примеров

Отправка массива JSON из ваших методов ресурсов JAX-RS

@GET
public JsonArray buildJsonArray(){
  return Json.createArrayBuilder().add("jsonp").add("jaxrs").build();
}

Вот еще один пример того, как вы можете принять полезную нагрузку JSON от клиента.

@POST
public void acceptJsonObject(JsonObject payload){
  System.out.println("the payload -- "+ payload.toString());
}

Это довольно простые примеры, но я надеюсь, что вы поняли идею.

Несколько вещей, которые стоит отметить

  • Нет необходимости писать собственные реализации MessageBodyReader или MessageBodyWriter. Как упоминалось ранее, реализация JAX-RS делает это для вас бесплатно!
  • Эта функция отличается от возможности использовать аннотации JAXB в POJO и обмениваться версиями полезной нагрузки JSON (указав тип носителя application / xml). Это еще не стандартная функция, хотя я экспериментировал с этим и заметил, что GlassFish 4.1 (Джерси) и Wildfly 8.x (RESTEasy) поддерживают это по умолчанию

Дальнейшее чтение

Ура!