diff --git a/app/src/main/java/com/huanchengfly/tieba/post/api/adapters/ContentMsgAdapter.java b/app/src/main/java/com/huanchengfly/tieba/post/api/adapters/ContentMsgAdapter.java new file mode 100644 index 00000000..54da5095 --- /dev/null +++ b/app/src/main/java/com/huanchengfly/tieba/post/api/adapters/ContentMsgAdapter.java @@ -0,0 +1,27 @@ +package com.huanchengfly.tieba.post.api.adapters; + +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonParseException; +import com.huanchengfly.tieba.post.api.models.ThreadContentBean; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.List; + +public class ContentMsgAdapter implements JsonDeserializer> { + @Override + public List deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { + List list = new ArrayList<>(); + if(json.isJsonArray()){ + json.getAsJsonArray().forEach(element->{ + if(element.isJsonObject()){ + list.add(context.deserialize(element,ThreadContentBean.ContentBean.class)); + } + }); + } + + return list; + } +} diff --git a/app/src/main/java/com/huanchengfly/tieba/post/api/models/ThreadContentBean.kt b/app/src/main/java/com/huanchengfly/tieba/post/api/models/ThreadContentBean.kt index 30b70110..fdf1c605 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/api/models/ThreadContentBean.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/api/models/ThreadContentBean.kt @@ -2,6 +2,7 @@ package com.huanchengfly.tieba.post.api.models import com.google.gson.annotations.JsonAdapter import com.google.gson.annotations.SerializedName +import com.huanchengfly.tieba.post.api.adapters.ContentMsgAdapter import com.huanchengfly.tieba.post.api.adapters.PortraitAdapter import com.huanchengfly.tieba.post.api.adapters.SubPostListAdapter import com.huanchengfly.tieba.post.models.BaseBean @@ -158,6 +159,7 @@ class ThreadContentBean : BaseBean() { class OriginThreadInfo { val title: String? = null + @JsonAdapter(ContentMsgAdapter::class) val content: List? = null } @@ -166,6 +168,7 @@ class ThreadContentBean : BaseBean() { val title: String? = null val floor: String? = null val time: String? = null + @JsonAdapter(ContentMsgAdapter::class) val content: List? = null val agree: AgreeBean? = null