By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement . We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account com.google.gson.stream.MalformedJsonException: Unterminated object at line 1 column 17675 path $[27].sign #1644 com.google.gson.stream.MalformedJsonException: Unterminated object at line 1 column 17675 path $[27].sign #1644 StarWishsama opened this issue Jan 28, 2020 · 1 comment

Stack trace:

com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Unterminated object at line 1 column 17675 path $[27].sign
at com.google.gson.Gson.fromJson(Gson.java:947)
at com.google.gson.Gson.fromJson(Gson.java:897)
at com.google.gson.Gson.fromJson(Gson.java:846)
at io.github.starwishsama.namelessbot.utils.LiveUtils.getBiliLivers(Live
Utils.java:27)
at io.github.starwishsama.namelessbot.utils.LiveUtils.getBiliLiverList(L
iveUtils.java:42)
at io.github.starwishsama.namelessbot.utils.LiveUtils.getBiliLiver(LiveU
tils.java:34)
at io.github.starwishsama.namelessbot.commands.DebugCommand.groupMessage
(DebugCommand.java:59)
at cc.moecraft.icq.command.CommandManager.runCommand(CommandManager.java
:130)
at cc.moecraft.icq.command.CommandListener$CommandRunnable.run(CommandLi
stener.java:80)
at java.lang.Thread.run(Unknown Source)
Caused by: com.google.gson.stream.MalformedJsonException: Unterminated object at line 1 column 17675 path $[27].sign
at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1564)
at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:492)
at com.google.gson.stream.JsonReader.hasNext(JsonReader.java:415)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.re
ad(ReflectiveTypeAdapterFactory.java:216)
at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(Type
AdapterRuntimeTypeWrapper.java:41)
at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.re
ad(CollectionTypeAdapterFactory.java:82)
at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.re
ad(CollectionTypeAdapterFactory.java:61)
at com.google.gson.Gson.fromJson(Gson.java:932)
... 9 more

Code:
private static Gson gson = new GsonBuilder().setLenient().create();

public static List<BiliLiver> getBiliLivers() throws IOException {
    HttpURLConnection conn = (HttpURLConnection) new URL(BotConstants.cfg.getLiveApi()).openConnection();
    conn.connect();
    if (conn.getResponseCode() == HttpURLConnection.HTTP_OK){
        BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        return gson.fromJson(br.readLine().trim(), new TypeToken<List<BiliLiver>>(){}.getType());
    conn.disconnect();
    return new ArrayList<>();

Beans:
BiliLiver.java
@DaTa
public class BiliLiver {
public int mid;
public String uuid;
public String uname;
public int video;
public int roomid;
public String sign;
@SerializedName("notice")
public String announcement;
@SerializedName("face")
public String faceImgLink;
public int rise;
public String topPhoto;
public int archiveView;
public int follower;
public int liveStatus;
@SerializedName("recordNum")
public int recordNumber;
@SerializedName("guardNum")
public int guardNumber;
public LastLive lastLive;
public int guardChange;
public List guardType;
public int areaRank;
public int online;
@SerializedName("title")
public String liveTitle;
public long time;

public boolean isStreaming(){
    return getLiveStatus() == 1;

}LastLive.java:
@DaTa
public class LastLive {
public int online;
public long time;