将整数转换为布尔值

2024-03-22

有没有办法可以将 int/short 值转换为布尔值?我收到的 JSON 如下所示:

{ is_user: "0", is_guest: "0" }

我正在尝试将其序列化为如下所示的类型:

class UserInfo {

    @SerializedName("is_user")
    private boolean isUser;

    @SerializedName("is_guest")
    private boolean isGuest;

    /* ... */
}

如何让 Gson 将这些 int/short 字段转换为布尔值?


首先获取 Gson 2.2.2 或更高版本。早期版本(包括 2.2)不支持原始类型的类型适配器。接下来,编写一个将整数转换为布尔值的类型适配器:

private static final TypeAdapter<Boolean> booleanAsIntAdapter = new TypeAdapter<Boolean>() {
  @Override public void write(JsonWriter out, Boolean value) throws IOException {
    if (value == null) {
      out.nullValue();
    } else {
      out.value(value);
    }
  }
  @Override public Boolean read(JsonReader in) throws IOException {
    JsonToken peek = in.peek();
    switch (peek) {
    case BOOLEAN:
      return in.nextBoolean();
    case NULL:
      in.nextNull();
      return null;
    case NUMBER:
      return in.nextInt() != 0;
    case STRING:
      return Boolean.parseBoolean(in.nextString());
    default:
      throw new IllegalStateException("Expected BOOLEAN or NUMBER but was " + peek);
    }
  }
};

...然后使用此代码创建 Gson 实例:

  Gson gson = new GsonBuilder()
      .registerTypeAdapter(Boolean.class, booleanAsIntAdapter)
      .registerTypeAdapter(boolean.class, booleanAsIntAdapter)
      .create();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将整数转换为布尔值 的相关文章

  • Play框架运行应用程序问题

    每当我尝试运行使用以下命令创建的新 Web 应用程序时 我都会收到以下错误Play http www playframework org Error occurred during initialization of VM Could no
  • Java - 将节点添加到列表的末尾?

    这是我所拥有的 public class Node Object data Node next Node Object data Node next this data data this next next public Object g
  • Final字段的线程安全

    假设我有一个 JavaBeanUser这是从另一个线程更新的 如下所示 public class A private final User user public A User user this user user public void
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • Spring Data JPA 应用排序、分页以及 where 子句

    我目前正在使用 Spring JPA 并利用此处所述的排序和分页 如何通过Spring data JPA通过排序和可分页查询数据 https stackoverflow com questions 10527124 how to query
  • Eclipse Java 远程调试器通过 VPN 速度极慢

    我有时被迫离开办公室工作 这意味着我需要通过 VPN 进入我的实验室 我注意到在这种情况下使用 Eclipse 进行远程调试速度非常慢 速度慢到调试器需要 5 7 分钟才能连接到远程 jvm 连接后 每次单步执行断点 行可能需要 20 30
  • 如何在 Python 中追加到 JSON 文件?

    我有一个 JSON 文件 其中包含 67790 1 kwh 319 4 现在我创建一个字典a dict我需要将其附加到 JSON 文件中 我尝试了这段代码 with open DATA FILENAME a as f json obj js
  • 无法捆绑适用于 Mac 的 Java 应用程序 1.8

    我正在尝试将我的 Java 应用程序导出到 Mac 该应用程序基于编译器合规级别 1 7 我尝试了不同的方法来捆绑应用程序 1 日食 我可以用来在 Eclipse 上导出的最新 JVM 版本是 1 6 2 马文 看来Maven上也存在同样的
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • Java列表的线程安全

    我有一个列表 它将在线程安全上下文或非线程安全上下文中使用 究竟会是哪一个 无法提前确定 在这种特殊情况下 每当列表进入非线程安全上下文时 我都会使用它来包装它 Collections synchronizedList 但如果不进入非线程安
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • GitHub Actions:如何将 toJSON() 结果传递给 shell 命令

    因此 我正在与 Github Actions 合作进行端到端测试 我正在查看的设置是让一项作业检索要测试的 url 列表 而我的第二项作业使用该列表创建一个矩阵并测试所有这些 我的问题是 当我实际运行测试脚本时 必须从命令行完成 因为我使用
  • 获取 JVM 上所有引导类的列表?

    有一种方法叫做findBootstrapClass对于一个类加载器 如果它是引导的 则返回一个类 有没有办法找到类已经加载了 您可以尝试首先通过例如获取引导类加载器呼叫 ClassLoader bootstrapLoader ClassLo
  • 编译器抱怨“缺少返回语句”,即使不可能达到缺少返回语句的条件

    在下面的方法中 编译器抱怨缺少退货声明即使该方法只有一条路径 并且它包含一个return陈述 抑制错误需要另一个return陈述 public int foo if true return 5 鉴于Java编译器可以识别无限循环 https
  • 使用 JMF 创建 RTP 流时出现问题

    我正处于一个项目的早期阶段 需要使用 RTP 广播DataStream创建自MediaLocation 我正在遵循一些示例代码 该代码目前在rptManager initalize localAddress 出现错误 无法打开本地数据端口
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur
  • JavaScript 相对路径

    在第一个 html 文件中 我使用了一个变量类别链接 var categoryLinks Career prospects http localhost Landa DirectManagers 511 HelenaChechik Dim0
  • 将 List 转换为 JSON

    Hi guys 有人可以帮助我 如何将我的 HQL 查询结果转换为带有对象列表的 JSON 并通过休息服务获取它 这是我的服务方法 它返回查询结果列表 Override public List
  • Spring Boot @ConfigurationProperties 不从环境中检索属性

    我正在使用 Spring Boot 1 2 1 并尝试创建一个 ConfigurationProperties带有验证的bean 如下所示 package com sampleapp import java net URL import j

随机推荐

  • 与 webpack/browserify 捆绑时如何排除代码路径?

    我有一个可以与 Node js 和浏览器一起使用的库 我正在使用 CommonJS 然后使用 webpack 发布网络版本 我的代码如下所示 For browsers use XHR adapter if typeof window und
  • Flutter - 在 pubspec.yaml 中添加 pub 包

    我想添加这个包 https github com jeroentrappers charts在颤振项目中 为什么是这个图表 因为它有负条 我尝试添加这样的东西 charts flutter git url git github com je
  • 使用 terraform 在 k8s 集群中授予 RBAC 角色

    我想分配RBAC向用户提供对除以下资源之外的所有资源的访问权限的规则 create and delete 动词在 namespace 使用 Terraform 的资源 目前我们的规则如下 rule api groups resources
  • 将 char 数组转换为单个 int?

    有人知道如何将 char 数组转换为单个 int 吗 char hello 5 hello 12345 int myNumber convert char to int hello Printf My number is d myNumbe
  • 在 matlab 中使用函数时,我收到错误“索引必须是实数正整数或逻辑数。”[重复]

    这个问题在这里已经有答案了 以下代码的目的是绘制 RGB 图像的 SNR 好吧 代码说明了灰度的 id 因为我无法为 RGB 做这件事 这是最终目标 y 轴绘制干净图像和噪声图像之间的平均误差除以干净图像的标准偏差 为了缩放误差 代码产生错
  • 如何在 RxSwift 中选择 CollectionView 单元格

    我需要使用 RxSwift 在集合视图中的特定索引处选择项目 此方法无法正常工作 collectionView rx modelSelected SearchResult self subscribe onNext menuItem in
  • Ruby w/ Sinatra:能给我一个 jQuery AJAX 请求的示例吗?

    a href gt new game human is first true remote gt true span Yes 上面是我的链接 只是想知道如何处理这个问题 我需要能够执行一些 JavaScript 下面是我使用 Rails 时
  • 删除 data.table 中的范围

    我试图根据天和月从数据表中排除一些行 例如排除暑假 这些行总是从 6 月 15 日开始 到下个月 15 日结束 我可以根据日期提取这些日子 但由于 as Date 函数运行起来非常慢 我有单独的月份和日期整数列 我想仅使用它们来完成此操作
  • 如何解决 Swift 3 中的键盘问题?

    问题是 当我尝试在文本字段中书写时 键盘会覆盖它们 如何向上滚动文本字段以查看我在写什么 我有以下代码行来启用返回键并在您触摸不同位置时隐藏键盘 override func didReceiveMemoryWarning super did
  • 将日期范围拆分为相应的周

    我有日期范围称为 from 和 to 我想将其转换为周 假设起始日期为 1 10 2014 截止日期为 31 10 2014 那么结果是 第一周 2014年10月1日 至 2014年10月4日 第二次 2014年10月5日 至 2014年1
  • 在 Android Marshmallow 中启用模拟位置

    我无法让模拟位置在 Android Marshmallow 中工作 我已经在Android 6 0中安装了应用程序 现在 当我想通过以下选项设置此应用程序的模拟位置时 设置 gt gt 开发者选项 gt gt 选择模拟位置应用程序 我看不到
  • 将 true 重新定义为 false 或反之亦然时,预期输出是什么?

    include
  • 在 Javascript 中,如何在窗口位置重定向 Ajax 响应

    我目前有以下内容working一段代码 角度但适用于任何 JS 框架 var url endpoint to my file http method GET url url success function jdata window loc
  • GNU-getline:关于 EOF 的奇怪行为

    Test 为了找到的行为getline 当遇到 EOF 时 我编写了以下测试 int main int argc char argv size t max 100 char buf malloc sizeof char 100 size t
  • C++ 中的动态结构

    我正在运行一个模拟 其中我有一个使用不同模型的类的对象 这些模型是针对该类的某些对象随机选择的 也针对某些对象专门确定的 这些对象相互通信 我在 C 中使用结构 又名 struct 其中有一些 标准变量和 一些附加变量取决于相互通信的对象所
  • 当我以编程方式调用它时,如何将参数传递给模态?

    我像这样以编程方式调用引导模式 confirmModal modal 但是当我这样做时 事件 在 confirmModal on show bs modal function event var button event relatedTa
  • 使用 SWT 浏览器小组件进行打印

    我想打印 SWT 浏览器小部件的内容 但它只打印浏览器的可见部分而不是其全部内容 请帮忙 我已将 SWT 浏览器片段修改为选定的代码 它对我来说就像一个魅力 import org eclipse swt import org eclipse
  • 如何将数据源发送到子报表?

    我正在处理需要子报表的报表 因此我想将数据源从 Java 方法传递到子报表 但我没有找到正确的方法 通常我使用以下代码来创建我的报告 将数据源发送到子报表的正确方法是什么 Map
  • 使用非均匀节点优化 CUDA 内核插值

    原问题 我有以下内核使用非均匀节点执行插值 我想对其进行优化 global void interpolation cufftDoubleComplex Uj double points cufftDoubleComplex result i
  • 将整数转换为布尔值

    有没有办法可以将 int short 值转换为布尔值 我收到的 JSON 如下所示 is user 0 is guest 0 我正在尝试将其序列化为如下所示的类型 class UserInfo SerializedName is user