Я хотел бы знать, как проанализировать канал JSON объектами (например, URL / заголовок / описание для каждого объекта). Я взглянул к документу / API, но, он не помог мне.
Это - то, что я получил до сих пор
import com.google.gson.Gson;
import com.google.gson.JsonObject;
public class ImportSources extends Job {
public void doJob() throws IOException {
String json = stringOfUrl("http://feed.test/all.json");
JsonObject jobj = new Gson().fromJson(json, JsonObject.class);
Logger.info(jobj.get("responseData").toString());
}
public static String stringOfUrl(String addr) throws IOException {
ByteArrayOutputStream output = new ByteArrayOutputStream();
URL url = new URL(addr);
IOUtils.copy(url.openStream(), output);
return output.toString();
}
}
Зависит от фактического формата JSON. Фактически вы можете просто создать собственный класс Javabean, который соответствует формату JSON. Любые поля в JSON могут быть отображены как String
, Integer
, Boolean
и т. Д. Свойства Javabean. Любые массивы могут быть отображены как свойства List
. Любые объекты могут быть отображены как другое вложенное свойство Javabean. Это значительно упрощает дальнейшую обработку в Java.
Без примера строки JSON с вашей стороны он только догадывается, как он будет выглядеть, поэтому я не могу привести здесь базовый пример. Но я уже публиковал похожие ответы здесь, вы можете найти их полезными:
У Gson также есть Руководство пользователя , вы можете тоже считаю это полезным.
Я не знаю, может ли GNON трансляцию / инкрементное связывание (я думал, что это не).
Но есть ли конкретная причина, чтобы учитывать только эту конкретную библиотеку? Другие библиотеки обработки Java JSON позволяют такую обработку (вы можете проверить ссылки, другой ответ имеет для некоторых идей), поскольку это довольно важная особенность при обработке крупных каналов.
Gson 1.4 имеет новый API JsonStreamParser, который позволяет вам анализировать несколько объектов JSON один за другим из потока.