我检查了服务器响应,并将其反序列化为Map而没有任何问题。
一旦我附加了反序列化器,Retrofit就会返回带有类型转换的RetrofitError,但即使我将Retrofit日志记录级别设置为LogLevel.FULL,也不会抛出其他异常。
如何调试自定义反序列化程序以检查错误的来源?
-
我从wordpress博客获取json并使用此
反序列化public ArrayList<Post> deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
Log.d("WayTrace", "Starting Parsing " + json);
final JsonObject jsonObject = json.getAsJsonObject();
Log.d("WayTrace", "JSONObject " + jsonObject);
final JsonArray posts = jsonObject.get("posts").getAsJsonArray();
Log.d("WayTrace", "JSON posts " + posts);
final ArrayList<Post> outList = new ArrayList<>(posts.size());
for (int i = 0; i < posts.size(); i++) {
final Post post = new Post();
Log.v("WayTrace", "JSON posts parsing item " + i);
post.setPostId(jsonObject.get("id").getAsInt());
post.setTitle(jsonObject.get("title").getAsString());
post.setExcerpt(jsonObject.get("excerpt").getAsString());
post.setContent(jsonObject.get("content").getAsString());
post.setImageUrl(jsonObject.get("thumbnail_images").getAsJsonObject().get("full").getAsJsonObject().get("url").getAsString());
post.setThumbUrl(jsonObject.get("thumbnail_images").getAsJsonObject().get("post-thumbnail").getAsJsonObject().get("url").getAsString());
post.setPostTimeStamp(this.mTstampParser.parseMillis(jsonObject.get("date").getAsString()));
outList.add(post);
}
return outList;
}
但即使这些日志命令也没有出现在我的日志中。