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) поддерживают это по умолчанию
Дальнейшее чтение
- Официальный документ спецификации JAX-RS — красиво и компактно!
- Некоторые из моих предыдущих постов о Java EE 7 и Java EE 8
- Аквариум : от людей евангелизации Java EE в Oracle
Ура!