如何使用自定义JsonDeserializer调试Retrofit CONVERSION错误?

时间:2015-03-08 19:47:34

标签: android json gson retrofit

我检查了服务器响应,并将其反序列化为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;
}

但即使这些日志命令也没有出现在我的日志中。

0 个答案:

没有答案