使用 GSON 的空字段的默认值

2023-12-26

我想为模型上的某些字段设置默认值,因此如果在反序列化期间我的 json 缺少字段,则会使用这些默认值。 我想了解什么是执行此操作的最佳实践以及原因。 我应该在模型的设置器中添加 null 控制,我应该使用 try catch 来查找任何情况,我应该扩展和修改 typeAdapter (这个解决方案对我来说似乎非常冗长,如果我错了,请告诉我)或还有更好的解决方案吗?


如果这些在 JSON 数据中根本不可用,那么只需启动变量即可。

private int id = -1;
private String name = "User not available";

如果你有可能得到null值,然后在 getter 中检查它

private String DEFAULT_NAME = "User not available";

private String name;

public String getName(){
  if(null == name) return DEFAULT_NAME;
  return name; 
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 GSON 的空字段的默认值 的相关文章

  • tomcat 中受密码保护的应用程序

    我正在使用 JSP Servlet 开发一个Web应用程序 并且我使用了Tomcat 7 0 33 as a web container 所以我的要求是tomcat中的每个应用程序都会password像受保护的manager applica
  • Android - AudioRecord类不读取数据,audioData和fftArray返回零

    我是 Android 新手 一直在开发音调分析器应用程序 最低 SDK 8 我读了很多关于如何实现 Audiorecord 类的文章 但我想知道为什么它在我录制时不读取任何数据 我尝试显示 audioData 和 fftArray 的值 但
  • 在javascript中解析json - 长数字被四舍五入

    我需要解析一个包含长数字的 json 在 java servlet 中生成 问题是长数字被四舍五入 当执行这段代码时 var s x 6855337641038665531 var obj JSON parse s alert obj x
  • java for windows 中的文件图标叠加

    我正在尝试像 Tortoise SVN 或 Dropbox 一样在文件和文件夹上实现图标叠加 我在网上查了很多资料 但没有找到Java的解决方案 Can anyone help me with this 很抱歉确认您的担忧 但这无法在 Ja
  • Eclipse 选项卡宽度不变

    我浏览了一些与此相关的帖子 但它们似乎并不能帮助我解决我的问题 我有一个项目 其中 java 文件以 2 个空格的宽度缩进 我想将所有内容更改为 4 空格宽度 我尝试了 正确的缩进 选项 但当我将几行修改为 4 空格缩进时 它只是将所有内容
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • 不接受任何内容也不返回任何内容的函数接口[重复]

    这个问题在这里已经有答案了 JDK中是否有一个标准的函数式接口 不接受也不返回任何内容 我找不到一个 像下面这样 FunctionalInterface interface Action void execute 可运行怎么样 Functi
  • OnLongClickListener 不工作

    我有一个ImageView 我需要使用onLongClickListener对于图像视图 当我使用这段代码时 什么也没有发生 Code gallery Gallery findViewById R id gall1 gallery setA
  • 我如何在java中读取二进制数据文件

    因此 我正在为学校做一个项目 我需要读取二进制数据文件并使用它来生成角色的统计数据 例如力量和智慧 它的设置是让前 8 位组成一个统计数据 我想知道执行此操作的实际语法是什么 是不是就像读文本文件一样 这样 File file new Fi
  • 在 Samsung Galaxy S5 Android 5.0 上使用 MediaPlayer 加载音频流需要超过 10 秒

    由于更新至 Android 5 0 MediaPlayer 在 Samsung Galaxy S5 上无法正常工作 启动音频流后加载时间超过 10 秒 示例代码 MediaPlayer mPlayer new MediaPlayer Str
  • 没有用于警告的设置器/字段 Firebase 数据库检索数据填充列表视图

    我只是想将 Firebase 数据库中的数据填充到我的列表视图中 日志显示正在检索数据 但适配器不会将值设置为列表中单个列表项中的文本 它只说 没有二传手 场地插入值 这让我觉得我的设置器没有正确制作 但 Android Studio 自动
  • 创建一个 JSON 对象以在 Spring Boot 测试中发布

    我想编写基本测试来使用 JSON 负载在 users URL 上执行 POST 请求来创建用户 我找不到如何将新对象转换为 JSON 到目前为止有这么多 这显然是错误的 但解释了目的 Test public void createUser
  • 长轮询会冻结浏览器并阻止其他 ajax 请求

    我正在尝试在我的中实现长轮询Spring MVC Web 应用程序 http static springsource org spring docs 2 0 x reference mvc html但在 4 5 个连续 AJAX 请求后它会
  • 如何将双精度/浮点四舍五入为二进制精度?

    我正在编写对浮点数执行计算的代码的测试 不出所料 结果很少是准确的 我想在计算结果和预期结果之间设置一个容差 我已经证实 在实践中 使用双精度 在对最后两位有效小数进行四舍五入后 结果始终是正确的 但是usually四舍五入最后一位小数后
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • 错误:(23, 13) 无法解决:com.google.android.gms:play-services:11.2.0“安装存储库和同步项目”不起作用

    我正在尝试在我的 Android 应用程序中获取位置并更新到服务器 这是我的 Gradle 代码 我在这里包含了compile com google android gms play services 11 2 0 这条线是从文档中 htt
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db
  • Android 后台倒计时器

    我有一个 Android 应用程序 它管理一个倒计时器 类 CountDownTimer 它显示在应用程序屏幕中 以显示到达 00 00 还剩多少时间 我现在的问题是 当我按主页按钮或启动另一个应用程序时 应用程序 计时器不会在后台运行 所
  • Android 屏幕方向错误

    我使用的是 Android HTC HERO 2 1 版本 我写的活动
  • Java中super关键字的范围和使用

    为什么无法使用 super 关键字访问父类变量 使用以下代码 输出为 feline cougar c c class Feline public String type f public Feline System out print fe

随机推荐

  • 为数据网格行创建上下文菜单

    我有一个可能有很多行的数据网格 当用户右键单击其中一行时 我需要为每一行显示一个上下文菜单 并在用户单击该选项时执行一个操作 相同的操作 但根据当前选定的行不同的数据项 对此最好的策略是什么 我担心每一行的 ContextMenu 都太过分
  • preRenderView 禁用 ajax

  • typedef struct 与 Object - 优点

    我计划定义一个类 其属性中包含 x y 网格的坐标 但是 我不确定实现此设计的 最佳 方法 这是一个很简单的问题 我只想正确地做并有一个理由 一种解决方案是拥有两个属性 类型为 int 一个用于 x 一个用于 y 在对象内 另一种是定义一个
  • 在 Django 中获取自己的应用程序

    有没有一种方法可以获取属于 Django 项目本身的应用程序列表 忽略安装的应用程序 pip 换句话说 我可以排除安装的应用程序吗 pip from settings INSTALLED APPS 您可以使用以下方式获取所有 django
  • app.listen() 和 app.get() 如何在express和hapi上工作

    使用 http 节点模块 仅限本机模块 我如何重新创建 app listen 和 app get 使用带有构造函数的 http 模块 var app function opts this token opts token app proto
  • 如何更改azure函数的python版本

    当我发布我的天蓝色云函数时 我收到消息 本地 python 版本 3 9 7 与部署的 Function App 的预期版本不同 这可能会导致 Azure Functions 中出现 ModuleNotFound 错误 请创建版本 3 9
  • 重定向路由严格斜杠

    我尝试对 webapp2 重定向路由使用严格斜杠 但收到此值错误 ValueError Routes with strict slash must have a name 这是我的路线之一的示例 RedirectRoute r handle
  • Perl 6 的 shell() 使用哪个 shell?

    Perl 6 的shell https docs perl6 org routine shell向 shell 发送命令 但没有说明那是什么 我一直得到bash在我的机器上 但我不知道我是否可以信赖它 perl6 e shell Q ech
  • 返回对象的保留/释放

    我是 Objective C 的新手 所以这可能是一个愚蠢的问题 我不禁看到 ObjC 和 Microsoft 的 COM 在内存管理方面的相似之处 AddRef Release vs retain release 在 COM 环境中 或多
  • 从推送通知打开 Android 应用程序

    有一个小问题一直困扰着我 我已将应用程序设置为接收来自 Urban Airship 的推送通知 一切正常 但是当我点击通知中心中的通知时 没有任何反应 我希望我的应用程序在用户点击推送通知时打开 我该怎么做才能实现此目的 一如既往 我们非常
  • 在执行繁重的 JavaScript 处理时强制 HTML5 画布重绘?

    这个问题与这位较老的 https stackoverflow com questions 1209689 how can i force the browser to redraw while my script is doing some
  • SQL SELECT INSERT INTO 生成唯一 ID

    我试图选择一个数据表并将该数据插入到另一个具有相似列名的文件中 它本质上是重复的数据 当前语法如下 INSERT INTO TABLE1 id id2 col1 col2 SELECT similiarId similiarId2 simi
  • google-services.json 是否安全,不会受到黑客攻击?

    如果黑客反编译了我的 APK 他是否能够从此文件中看到我的 API 密钥 我不担心我的源代码存储库 我只是担心黑客能够以某种方式从我的 APK 中看到这个 API 密钥 我正在尝试加密该文件并在运行时解密它 但遇到一些问题 谷歌插件的设置方
  • 保持 MaxPermSize 小有什么好处吗?

    假设是 64 位 JVM 保持 MaxPermSize 小有什么显着的好处吗 这是在频繁重新部署且存在类加载器泄漏的 Java EE 应用程序的上下文中 作为中期解决方法 将 MaxPermSize 提高到一个荒谬的值似乎非常合理 只要它不
  • 删除具有上次修改日期条件的多个 s3 存储桶文件

    如何删除多个 S3 文件上一次更改日期条件 我在 s3 上有这个文件夹结构 dentca lab dev sample 2019 03 13 file1 最后修改时间 2019 年 3 月 13 日下午 2 34 06 GMT 0700 f
  • 单击 jqGrid 中的行获取列的值

    我在用Asp Net C 在我正在使用的页面之一中jqGrid显示用户列表Admin The jqGrid包含以下列 用户代码 名 中间名字 姓 Email 这是我的标记
  • Xamarin Forms - 图像传入/传出 IRandomAccessStreamReference

    为了个人的需要 为了Xamarin Forms Map控制 我需要创建一个CustomPin扩大 UWP部分 PCL项目 我创建一个MapIcon喜欢它 nativeMap MapElements Add new MapIcon Title
  • 从资源管理器获取所有字符串

    我需要编写一个程序 从 dll 读取所有字符串资源并将它们插入到某个表中 我有读取资源的方法 private static IEnumerable
  • Python Redis交互

    我想用 python 编写使用 redis 的应用程序 我用谷歌搜索 但找不到我的问题的任何结果 通常 我这样做 import redis rs redis Redis localhost 然后执行所有获取和设置 但是我可以在redis中做
  • 使用 GSON 的空字段的默认值

    我想为模型上的某些字段设置默认值 因此如果在反序列化期间我的 json 缺少字段 则会使用这些默认值 我想了解什么是执行此操作的最佳实践以及原因 我应该在模型的设置器中添加 null 控制 我应该使用 try catch 来查找任何情况 我