android - 如果 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 数据。
解决方案
一个快速的方法是try-catch
try {
JSONObject obj = jsonObj.getJSONObject("keyName");
} catch(JSONException e) {
// Do Nothing or something else
}
推荐阅读
- java - 使用 Apache POI XSSFWorkbook 时出现 NoClassDefFoundError
- r - 抓取拍摄位置的坐标数据和附加信息
- selenium - Google Chrome 窗口调整大小限制
- c# - 从 PowerPoint 幻灯片生成图像
- shell - 如何在 unix 的变量赋值中将文件名传递给 sed|grep|awk 命令
- reactjs - 相邻的 JSX 元素必须包含在带有引导列的封闭标记中
- mysql - 滚动 12 个月数据求和运算
- java - 下划线作为 Java 中的变量名。为什么?
- c++ - 在opencv c ++中创建线性结构元素
- excel - 使用查找功能时出现错误 91,使用 ActiveCell?