Разбор JSON в Java из API Klout - PullRequest
       2

Разбор JSON в Java из API Klout

1 голос
/ 23 сентября 2011

Я создаю веб-приложение, которое возвращает сведения о Klout Scores подписчиков в Твиттере. Рабочий процесс выглядит следующим образом:

  1. Из Twitter API получите twitter_id подписчиков. Например: 48 000 идентификаторов последователей Сачин Тендулкар.
  2. получить информацию из твиттера (отображаемое имя, твиттер_имя, местоположение) для twitter_id, полученного на шаге 1.
  3. из Klout API , получите результаты Klout в формате JSON, а затем выполните синтаксический анализ JSON в Java.
  4. из Klout API , получение тем Klout в формате JSON и последующий анализ JSON в Java.
  5. Вставка данных Klout и Twitter в базу данных.

У меня проблема с анализом JSON на Java. Пожалуйста, предложите решения. Заранее спасибо.
Komal

1 Ответ

0 голосов
/ 17 июня 2017

Взгляните на Настройка приложения Klout раздела Советы и рекомендации по носителям .В нем объясняется, как использовать библиотеку dmt-klout для получения информации, которую вы ищете.

Если вы хотите переписать библиотеку, вы можете посмотреть исходный код.Библиотека dmt-klout зависит от классов json.org для анализа ответа JSON.Например:

public User(JSONObject json) {
    nick = json.getString("nick");
    id = new UserId(json.getString("kloutId"));
    JSONObject scores = json.getJSONObject("score");
    bucket = scores.getString("bucket");
    score = scores.getDouble("score");
    JSONObject scoreDeltas = json.getJSONObject("scoreDeltas");
    dayChange = scoreDeltas.getDouble("dayChange");
    weekChange = scoreDeltas.getDouble("weekChange");
    monthChange = scoreDeltas.getDouble("monthChange");
}

В этом случае json - это JSONObject, созданный с использованием String, который возвращается при запросе пользователя.Этот класс User также используется для запроса влияния:

public Influence(JSONObject json) {
    parseInfluence(json.getJSONArray("myInfluencers"), myInfluencers);
    parseInfluence(json.getJSONArray("myInfluencees"), myInfluencees);
}

private void parseInfluence(JSONArray array, List<User> list) {
    int count = array.length();
    for (int i = 0; i < count; i++) {
        list.add(new User(
            array.getJSONObject(i).getJSONObject("entity")
            .getJSONObject("payload")));
    }
}

Извлечение тем выполняется немного по-другому:

public List<Topic> getTopics(UserId id) throws IOException {
    List<Topic> topics = new ArrayList<Topic>();
    JSONArray array = new JSONArray(KloutRequests.sendRequest(String.format(
            KloutRequests.TOPICS_FROM_KLOUT_ID, getUserId(id).getId(), apiKey)));
    int n = array.length();
    for (int i = 0; i < n; i++) {
        topics.add(new Topic(array.getJSONObject(i)));
    }
    return topics;
}

Конструктор класса Topic выглядиткак это:

public Topic(JSONObject json) {
    id = json.getLong("id");
    name = json.getString("name");
    displayName = json.getString("displayName");
    slug = json.getString("slug");
    displayType = json.getString("displayType");
    imageUrl = json.getString("imageUrl");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...