JSON-клиент в Java для службы Restful - PullRequest
0 голосов
/ 04 августа 2010

Обычно я использую веб-сервисы xml и использую JAXB для маршалинга / демаршаллинга xml. В этом случае у меня есть xml-схема для генерации классов, а затем во время выполнения я просто имею дело с объектами java, а не с xml, так как этот демонтирование выполняется для меня под прикрытием.

Какие библиотеки существуют для создания чего-то похожего в json? Я должен сделать вызов HTTP Get, который возвращает список объектов json, и я не уверен, как должен выглядеть мой клиент java. Каковы лучшие практики здесь?

Спасибо.

Ответы [ 3 ]

1 голос
/ 04 августа 2010

Существует множество библиотек Java, которые анализируют JSON.Самым простым в использовании является тот, который использует org.json.Список различных библиотек синтаксического анализа JSON можно найти в (http://json.org)

. Если вы использовали JAXB для маршалинга / демаршаллинга объектов-значений (POJO), вы также можете взглянуть на Джексона, который использует аннотации JAXBопределите, как должно выглядеть представление вашего POJO в JSON. (http://jackson.codehaus.org/)

По сути вам нужно будет сделать запрос HTTP GET для вашего JSON, проанализировать запрос с помощью анализатора JSON и преобразовать их в удобное представление вJava. Вы можете использовать библиотеки Apache Commons HttpClient и анализаторы JSON вместе.

0 голосов
/ 21 ноября 2013

Если вам нужно создать как службу RESTful, так и ее клиента, то я бы предпочел rest4j.Вы можете описать свой сервис RESTful, используя XML, и реализовать свой сервис как обычный бин Spring.Затем вы также можете сгенерировать документацию и клиентские библиотеки java / python / php / c #.Маршалинг и демаршаллинг выполняются изнутри.

И есть способ гибко отобразить ваши внутренние объекты Java во внешнее представление JSON, например переименовать свойство, экспортировать только поднабор свойств и т. Д.

0 голосов
/ 21 ноября 2013
String url = "www.abc.com/products/1"; // 1 = product number
DefaultHttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
request.addHeader("User-Agent", USER_AGENT);
request.addHeader(BasicScheme.authenticate(
new UsernamePasswordCredentials("username", "password"), "UTF-8", false));
HttpResponse response = client.execute(request);
System.out.println("Response Code : " + response.getStatusLine().getStatusCode());
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
data = new String(rd.readLine());

Теперь вам нужно создать объект библиотеки JSON для анализа данных или извлечения определенных данных.

try {
        obj = new JSONObject(data);
        System.out.println("Final Data" + data);
        String category = obj.getString("product");
        System.out.println("category " + category);
}
} catch (JSONException ex) {
        System.out.println(ex);
    }

Используйте библиотеку org.codehaus.jettison.json для работы с данными JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...