首页 > 解决方案 > 如果 Json 字段属于特定类型,那么过滤掉 Json 字段的最佳方法是什么?

问题描述

在 Android (Java) 环境中,我使用 Gson 来处理序列化/反序列化。在我发出的一个 GET 请求中,API 返回一个布尔值或字段“keyName”的对象。当值为布尔值时如何忽略此字段?

我尝试使用用户定义的排除策略,但我认为它不能用于忽略特定类型。

public class MovieAccountState {

@SerializedName("rated")
private Rating mRated;
@SerializedName("watchlist")
private boolean mWatchlisted;

public Rating getRated() {
    return mRated;
}

public boolean isWatchlisted() {
    return mWatchlisted;
}
}

*编辑:没有太多相关代码要发布,Gson 为我处理从 Json 创建对象,因此来自 api 的“评级”字段要么具有布尔值,要么具有对象。如果有办法让我在 Gson 创建对象之前拦截 Json 数据。

标签: androidgson

解决方案


一个快速的方法是try-catch

try {
    JSONObject obj = jsonObj.getJSONObject("keyName");
} catch(JSONException e) {
    // Do Nothing or something else
}

推荐阅读