JSON с отступом — это механизм связи, используемый в JavaScript для преодоления ограничений из-за той же политики происхождения (для получения дополнительной информации см .: http://en.wikipedia.org/wiki/JSONP ). В этой статье я покажу, как использовать JSON с отступами при использовании MOXy в качестве вашего JSON-провайдера.
Эта функциональность является новой в EclipseLink 2.5.0 (и 2.4.2), вы можете попробовать ее сегодня, используя ночную сборку, доступную по адресу:
Данные, которые мы запрашиваем (чтобы заполнить
div с
id = «message» ) через HTTP, поступают с другого сервера, чем тот, на котором размещено наше приложение. Мы будем использовать JSON с отступами для получения данных. Ответ от URL будет вызовом нашей
функции foo . Мы предоставим имя функции через
параметр запроса обратного вызова .
Ниже приведен ответ от выполнения HTTP-вызова. Посмотрите, как данные JSON обернуты в вызов нашей
функции foo .
Ниже приведен сервис RESTful, реализованный с помощью JAX-RS. Наш
метод GET возвращает экземпляр класса
MOXy JSONWithPadding, параметризованный с классом домена
Foo . При создании экземпляра этого класса мы присваиваем ему имя функции обратного вызова (по умолчанию это
обратный вызов ) и экземпляр класса домена. Мы будем использовать имя функции обратного вызова из параметров запроса, если оно было предоставлено.
Ниже приведена модель Java, которую мы будем использовать для этого примера.
package org.example.padding; public class Foo { private String bar; public String getBar() { return bar; } public void setBar(String bar) { this.bar = bar; } }
Из-за ошибки (см .:
http://bugs.eclipse.org/404927 ), которую мы исправим в EclipseLink 2.5.1, вам нужно будет создать подкласс
MOXyJsonProvider для переопределения
@Produces и
метода isWritable , чтобы использовать JSON с отступом.
Если вам понравился этот пост, вас также могут заинтересовать: