Twitch PIRCBOT JSON ошибка извлечения из TMI

Я пытаюсь получить список пользователей чата со страницы TMI Twitch и проанализировать его, и я получаю сообщение об ошибке:

1505846432543 ### com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected a string but was BEGIN_OBJECT at line 1 column 53 path $.chatters

Из этого кода:

package org.jibble.pircbot;

import java.net.*;
import java.io.*;

class Find {

    public static void main(String[] args) {

    try {
        System.out.println("Getting JSON");
        String json = Json();
        System.out.println(json);
    } catch (IOException ex) {
        System.out.println(ex.toString());
    }

    return;
}

public static String Json() throws IOException {
    URL twitchTMI = new URL(
            "https://tmi.twitch.tv/group/user/therealcmiller/chatters?client_id=*removedforsecurity*&?api_version=5");
    URLConnection urlc = twitchTMI.openConnection();
    BufferedReader input = new BufferedReader(new InputStreamReader(urlc.getInputStream()));

    String json = "";
    String line;
    while ((line = input.readLine()) != null) {
        json += line;
    }
    input.close();

    return json;
    }

}

Возвращение выглядит так:

{"_links": {}, "chatter_count": 3, "chatters": {"moderators": ["cmillerbot", "therealcmiller"], "staff": [], "admins": [], "global_mods": [], "viewers": ["logviewer"]}}

Который называется здесь:

    protected void onMessage(String channel, String sender, String login, String hostname, String message) {
    if (message.startsWith("!mods")) {
        Gson gson = new Gson();
        String moderators = null;
        try {
            moderators = Find.Json();
        } catch (Exception e) {
            e.printStackTrace();
        }
        try {
            System.out.println(Find.Json() + " Hello world ");
        } catch (IOException e) {
            e.printStackTrace();
        }
        Parse parseMods = gson.fromJson(moderators, Parse.class);
        sendMessage(channel, parseMods.moderators);
    }

и проанализировал с помощью

public String moderators;

public String getMods() {
    return this.moderators;
}

public void setMods(String moderators) {
    this.moderators= moderators;
}

Эта настройка работает для извлечения из API, но при извлечении из него нет массивов. Как мне заставить GSON увидеть это правильно и вернуть?

0 ответов

Другие вопросы по тегам