首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Gson在JAVA Android中将布尔值从1反序列化为false

Gson是Google提供的一个Java库,用于将Java对象转换为JSON格式的字符串,或者将JSON格式的字符串转换为Java对象。在Java Android开发中,使用Gson可以方便地进行JSON数据的序列化和反序列化操作。

针对你提到的问题,Gson在默认情况下将布尔值从1反序列化为true,而不是false。这是因为在JSON中,true和false是布尔类型的关键字,分别表示真和假。而在Java中,布尔类型的取值只有true和false,没有其他取值。

如果需要将布尔值从1反序列化为false,可以通过自定义Gson的反序列化逻辑来实现。具体步骤如下:

  1. 创建一个自定义的JsonDeserializer类,实现JsonDeserializer接口,并重写deserialize方法。该方法用于将JSON中的布尔值反序列化为Java对象。
代码语言:txt
复制
import com.google.gson.*;

public class BooleanDeserializer implements JsonDeserializer<Boolean> {
    @Override
    public Boolean deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
        int value = json.getAsInt();
        return value == 1 ? false : true;
    }
}
  1. 在使用Gson进行反序列化时,注册自定义的JsonDeserializer类。
代码语言:txt
复制
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(Boolean.class, new BooleanDeserializer());
Gson gson = gsonBuilder.create();

String json = "1";
boolean result = gson.fromJson(json, Boolean.class);

通过以上步骤,我们可以将布尔值从1反序列化为false。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 除了FastJson,你还有选择: Gson简易指南

    描述可以看出,Gson 是用于将 Java 对象与 JSON格式字符串数据相互转换的 Java 库。它起初Google 内部广泛使用在 Android 平台 和 Java 服务端上。...使用方面,Gson 提供简易的API fromJson/toJson 来实现 Java 与 JSON 之间的转换,并且能生成紧凑,可读的 JSON 字符串输出,还支持复杂对象转换和丰富的自定义表示,足以满足日常开发中我们绝大部分的...除了将JSON 字符串序列化为自定义的Java 对象之外,我们该可以转为 Map 集合,Gson 提供了对 Map 集合的转换,使用起来也十分简单: @Test void test_map() {...当给一个字段加上 注解@Expose(serialize = true, deserialize = false),则表示了该字段尽在序列化时可见,反序列化时会忽略赋值。...Gson 中 transient 关键字修饰的字段默认不会被序列化和反序列化,这个行为是与 Java 原生的序列化和反序列化操作一致的。

    1.3K30

    Android Protobuf 序列化】Protobuf 性能测试 ( fastjson 序列化与反序列化 | gson 序列化与反序列化 | 三种序列化与反序列化性能对比 )

    文章目录 一、导入依赖库 二、构造 JavaBean 三、fastjson 序列化与反序列化 四、gson 序列化与反序列化 五、完整代码 1、主界面代码 2、JSON 测试代码 3、执行结果 六、参考资料...对象 , 本博客中将其序列化 , 保存到本地文件中 ; 导入 fastjson 与 gson 依赖库 , 即可使用两个 json 序列化与反序列化 API ; implementation '...com.google.code.gson:gson:2.8.2' implementation 'com.alibaba:fastjson:1.1.67.android' 二、构造 JavaBean...29 ms 四、gson 序列化与反序列化 ---- 使用 gson 进行序列化与反序列化 : // 初始化 kim.hsl.protobuf.AddressBook 对象.../kim.hsl.protobuf I/MainActivity: gson 反序列化耗时 12 ms 五、完整代码 ---- 1、主界面代码 package kim.hsl.protobuf import

    2.1K30

    除了FastJson,你还有选择: Gson简易指南

    描述可以看出,Gson 是用于将 Java 对象与 JSON格式字符串数据相互转换的 Java 库。它起初Google 内部广泛使用在 Android 平台 和 Java 服务端上。...: [006y8mN6gy1g6s51fgqp5j30o2090q3h.jpg] 结果可以看出,默认的 Gson 对象行为序列化对象时会将 null 值的字段忽略,而 com.google.gson.GsonBuilder...JSON 字符串序列化为自定义的Java 对象之外,我们还可以转为 Map 集合,Gson 提供了对 Map 集合的转换,使用起来也十分简单: @Test void test_map() { String...当给一个字段加上 注解@Expose(serialize = true, deserialize = false),则表示了该字段尽在序列化时可见,反序列化时会忽略赋值。...Gson 中 transient 关键字修饰的字段默认不会被序列化和反序列化,这个行为是与 Java 原生的序列化和反序列化操作一致的。

    1.6K40

    Gson-更新中

    概述 通用框架-网络编程-Gson ? Gson 是 Google 提供的用来 Java 对象和 JSON 数据之间进行映射的 Java 类库。...官方文档 Gson目前托管 github, https://github.com/google/gson Gson Goals 提供简单的的toJSON()和fromJson()方法,将Java对象到...比如,我android studio中使用Gson 项目的build.gradle中加入 compile 'com.google.code.gson:gson:2.6.2' 然后同步即可自动下载Gson...当对象被反序列化时(源文件读取字节序列进行重构),这样的实例变量值不会被持久化和恢复 private transient int value4 = 666; // 加了transient...如果一个字段是合成的,它被忽略,不包括JSON序列化和反序列化 对应于内部类,匿名类和局部类外类的字段被忽略,并且不包括序列化和反序列化 Nested Classes (including Inner

    63520

    序列化Java对象重命名字段,@JSONField、@JsonProperty、@SerializedName

    、格式化的属性 @JSONField(serialize = false)---->序列化的时候忽略这个属性 @JSONField(format = "yyyyMMdd")---->序列化和反序列化额时候使用...yyyyMMdd,一般Date类型的字段上使用 */ @JSONField(serialize = false) public String Name; /* 注解set方法表示json...是com.google.gson.annotations下的常用注解,作用和@JsonProperty差不多,重点是可以将多个字段名称映射到一个字段属性上 SerializedName 改变了默认序列化和默认反序列化的字段取值...alternate 属性是用在反序列化上的,也就是说 JSON 到 Java 类的过程。Gson 会帮我们匹配 JSON 中的命名,并尝试找到一个字段映射。无论哪一个都会映射。...gson = new Gson(); MyBean myBean1 = gson.fromJson(jsonBean1, MyBean.class); System.err.println

    13.2K20

    Gson:我爸是 Google

    01、前世今生 我叫 Gson,是一款开源的 Java 库,主要用途为序列化 Java 对象为 JSON 字符串,或反序列化 JSON 字符串成 Java 对象。...3)可以反序列化包含 87000 个对象的集合。 4)将字节数组和集合的反序列化限制 80K 提高到 11M 以上。...); Boolean false1 = gson.fromJson("false", Boolean.class); String str = gson.fromJson("\"王二\"", String.class...5)JSON 中缺少的字段将在反序列化后设置为默认值,引用数据类型的默认值为 null,数字类型的默认值为 0,布尔值默认为 false。 接下来,来看一个序列化集合的例子。...fromJson() 反序列化的时候,和此类似。 ? 这样的话,bar1 就可以通过 foo1.get() 到了。 瞧,我考虑得多周全,女朋友都忍不住夸我了!

    92220

    Mson,让JSON序列化更快

    问题 我们经常需要在主线程中读取一些配置文件或者缓存数据,最常用的结构化存储数据的方式就是将对象序列化为JSON字符串保存起来,这种方式特别简单而且可以和SharedPrefrence配合使用,因此应用广泛...但是目前用到的Gson序列化JSON时很慢,在读取解析这些必要的配置文件时性能不佳,导致卡顿启动速度减慢等问题。 Gson的问题在哪里呢?...图 1 ? 图 2 如图1,可以发现Gson序列化占用了大部分的执行时间,图2可以更直观地看到Gson.fromJson占用了61%的执行时间。...那么有没有一种方式使用时和Gson一样简单且性能又特别好呢? 我们调研了Java的AnnotationProcessor(注解处理器),它能够在编译前对源码做处理。...需要序列化的地方: Mson.fromJson(json, clazz); // 反序列化Mson.toJson(bean); // 序列化 结语 本文介绍了一种高性能的JSON序列化工具Mson,

    2K110

    Android 序列化框架 Gson 原理分析,可以优化吗?

    Gson[1] 是 Google 推出的 Java Json 解析库,具有接入成本低、使用便捷、功能扩展性良好等优点,想必大家都很熟悉了。...配置项 Gson 类是整个库的核心 API,进行任何序列化或反序列化之前,我们都需要获得一个 Gson 对象。... Gson反序列化中,首次反序列化一个类型的对象时,Gson 需要使用大量反射调用解析一个 TypeAdapter 适配器对象。随着 Model 的复杂程度增加,首次解析的耗时会不断膨胀。...是时候丢弃 Gson 了[6]—— bennyhuo 著 抖音 Android 性能优化系列:启动优化实践(反序列化优化)[7] —— 字节跳动技术团队 著 JSON[8] —— Wikipedia 参考资料...是时候丢弃 Gson 了: https://juejin.cn/post/6844903662783823885 [7] 抖音 Android 性能优化系列:启动优化实践(反序列化优化): https

    2.3K50

    穿越到东汉末年的Jackson

    东吴FastJson fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以JSON字符串反序列化到JavaBean。...android虚拟机:反射的方式 gson:反射+反射缓存、支持部分stream、内存性能较差(gc问题) ASM ASM是一个 Java 字节码操控框架。它能被用来动态生成类或者增强既有类的功能。...反射很大一部分性能消耗遍历Field。 反射缓存能够提高1个数量级的性能。...空字符串的处理 有的需要输出null,有的需要不输出,有的需要输出 “” bool的处理 有的需要输出0/1,有的需要输出true/false 自定义对象的处理 DateTime、Long、Timestamp..., false); // 注册一个时间序列化及反序列化的处理模块,用于解决jdk8中localDateTime等的序列化问题 om.registerModule(new

    2K20

    Jackson 使用

    (即不对ObjectMapper做任何额外配置,也不对Java对象加任何Annotation),ObjectMapper依赖于Java对象的默认的 无参构造函数 进行反序列化,并且严格地通过 getter..., User.class); // 反序化为List的对象, 使用 TypeReference 这个标志 String json = "[{\"name\":\...或者class上面加上@JsonIgnoreProperties(ignoreUnknown = true)注解 Jackson除了处理普通对象,还可以对Java集合、数组等进行序列化处理。...value: 定义逻辑属性的名称, 作用是把该属性的名称序列化为另外一个名称 access: 更改序列化和反序列化中逻辑属性的可见性 defaultValue: 用于记录预期的默认值 index: 定义与..."Y" : "N"); } } 这里只自定义了反序列化器 public final class TrialRequest { /** * 是否保全记录种跳转进入。

    1.8K20

    SpringBoot的序列化和反序列化

    序列化与反序列化 1、认识序列化与反序列化 Java序列化是指把Java对象转换为字节序列的过程,而Java反序列化是指把字节序列恢复为Java对象的过程。 2、为什么要实现对象的序列化和反序列化?...(1)我们创建的Java对象被存储Java堆中,当程序运行结束后,这些对象会被JVM回收。但在现实的应用中,可能会要求程序运行结束之后还能读取这些对象,并在以后检索数据,这时就需要用到序列化。...(2)当Java对象通过网络进行传输的时候。因为数据只能够以二进制的形式在网络中进行传输,因此当把对象通过网络发送出去之前需要先序列化成二进制数据,接收端读到二进制数据之后反序列化成Java对象。...java.io.ObjectInputStream:表示对象输入流 ,它的readObject()方法源输入流中读取字节序 ,再把它们反序列化成为一个对象,并将其返回。...默认为false 配置前:默认不输出为null的字符型字段 配置后:字符类型字段如果为null,输出为”” 方式二 重写TypeAdapter 问题引入:使用Gson将HashMap<String

    2.4K40
    领券