diff --git a/src/main/java/cn/montaro/aria2/client/http/Aria2HttpProxy.java b/src/main/java/cn/montaro/aria2/client/http/Aria2HttpProxy.java index c1dd4fc..dbea336 100644 --- a/src/main/java/cn/montaro/aria2/client/http/Aria2HttpProxy.java +++ b/src/main/java/cn/montaro/aria2/client/http/Aria2HttpProxy.java @@ -79,11 +79,20 @@ public class Aria2HttpProxy implements InvocationHandler { } private Object deserialize(String json, Type resultType) { - if (resultType.equals(String.class)) { - return json; - } JsonObject jsonObject = JsonParser.parseString(json).getAsJsonObject(); JsonElement result = jsonObject.get("result"); + + if (Objects.isNull(result)) { + return null; + } + + if (resultType.equals(String.class)) { + if (result.isJsonPrimitive()) { + return result.getAsJsonPrimitive().getAsString(); + } + return json; + } + return gson.fromJson(result, resultType); }