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

gson可以将空字符串反序列化为map中的null吗?

gson是Google提供的一个Java库,用于将Java对象转换为JSON格式的字符串,以及将JSON格式的字符串转换为Java对象。在gson中,空字符串可以被反序列化为map中的null。

具体来说,当使用gson将JSON字符串反序列化为Java对象时,如果JSON字符串中的某个字段的值是空字符串,gson会将其转换为null值,并将该null值存储在map中对应的键值对中。

以下是一个示例代码,演示了如何使用gson将空字符串反序列化为map中的null:

代码语言:txt
复制
import com.google.gson.Gson;
import java.util.Map;

public class GsonExample {
    public static void main(String[] args) {
        String json = "{\"key\": \"\"}";

        Gson gson = new Gson();
        Map<String, String> map = gson.fromJson(json, Map.class);

        System.out.println(map.get("key"));  // 输出结果为null
    }
}

在上述代码中,我们定义了一个JSON字符串json,其中包含一个键值对"key": "",值为空字符串。通过调用gson.fromJson(json, Map.class)方法,我们将JSON字符串反序列化为一个Map对象map。然后,我们通过map.get("key")方法获取键为"key"的值,结果为null。

总结起来,gson可以将空字符串反序列化为map中的null值。这在处理JSON数据时非常有用,可以方便地表示空值或缺失值。

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

相关·内容

Gson的学习与使用

Gson介绍: GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库。可以将一个Json字符转成一个Java对象,或者将一个Java转化为Json字符串。...//上面的注解是lombok的注解,起到简化Bean类的作用。 Gson提供了public String toJson(Objcet obj)方法,可以将对象转化为json字符串。...} } 结果: Gson提供了public T fromJson(String jsonStr,T.class)方法,可以将json字符串转化为Java对象  json字符串转化为JavaBean...4)@Expose(deserialize = false, serialize = true)既可以序列化,也可以反序列化。 注:这里的序列化指:将对象转化为json字符串。...的容错机制 为什么容错:   如果Bean中定义的是int,但是返回的json对应的是一个""空字串怎么办?

1.5K20

Java-json序列化和反序列化

序列化为JSON文本 public static final String toJSONString(Object object); // 将JavaBean序列化为带格式的JSON文本 public...ObjectMapper有多个JSON序列化的方法,可以把JSON字符串保存File、OutputStream等不同的介质中。...可以将一个Json字符转成一个Java对象,或者将一个Java转化为Json字符串。...把实体类序列化为json时,如果实体类某个属性的值为null,gson在序列化该对象是则默认过滤掉该属性,该属性不会参与序列化。...二、反序列化时需注意json串的格式,如果是数组则最外层是用‘[ ]’来包括的,如果是对象或者是Map则是用‘{ }’来包括的, 根据需要反序列化的json格式来选定需要反序列化用的方法gson.fromJson

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

    从描述可以看出,Gson 是用于将 Java 对象与 JSON格式字符串数据相互转换的 Java 库。它起初在Google 内部广泛使用在 Android 平台 和 Java 服务端上。...将对象转化成 JSON字符串的过程称为序列化,将JSON 字符串转化成对象的过程称为反序列化。 ?...从结果可以看出,默认的 Gson 对象行为序列化对象时会将 null 值的字段忽略,而执行 com.google.gson.GsonBuilder#serializeNulls 方法后将允许 Gson...除了将JSON 字符串序列化为自定义的Java 对象之外,我们该可以转为 Map 集合,Gson 提供了对 Map 集合的转换,使用起来也十分简单: @Test void test_map() {...比如现在有个 JSON 字符串内容为 {"CODE": 400, "MESSAGE": "参数错误"},需要被反序列化为前文提到的 Result 对象,由于字段名不一样,为了实现对应的转换,就需要自定义

    1.3K30

    穿越到东汉末年的Jackson

    它也可以用于将JSON字符串转换为等效的Java对象。Gson可以处理任意Java对象,包括您没有源代码的预先存在的对象。...东吴FastJson fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。...null的处理 有的需要输出null,希望保留字段。有的需要不输出,输出结果里头剔除空值。...例如,ExtendableBean实体具有name属性和一组键/值对形式的可扩展属性: image.png 当我们序列化这个实体的一个实例时,我们将Map中的所有键值作为标准的、普通的属性: image.png...,还是其他的选项,可以忽略null等 om.setSerializationInclusion(Include.ALWAYS); // 设置Date类型的序列化及反序列化格式

    2K20

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

    从描述可以看出,Gson 是用于将 Java 对象与 JSON格式字符串数据相互转换的 Java 库。它起初在Google 内部广泛使用在 Android 平台 和 Java 服务端上。...将 对象转化成 JSON字符串的过程称为序列化,将JSON 字符串转化成对象的过程称为反序列化。...#serializeNulls 方法将允许 Gson 对象序列化 null 字段;并且正常序列化后的 JSON 字符串是紧凑格式,节省字符串内存,使用 com.google.gson.GsonBuilder...JSON 字符串序列化为自定义的Java 对象之外,我们还可以转为 Map 集合,Gson 提供了对 Map 集合的转换,使用起来也十分简单: @Test void test_map() { String...比如现在有个 JSON 字符串内容为 {"CODE": 400, "MESSAGE": "参数错误"},需要被反序列化为前文提到的 Result 对象,由于字段名不一样,为了实现对应的转换,就需要自定义

    1.6K40

    如何更好的使用Gson

    gson是Google开源的一个Java序列化库,它具有以下特点: 使用简单,只需要掌握toJson()和fromJson()两个方法就可以实现Java对象和JSON字符串之间的序列化和反序列化 允许将现有的不可修改的对象与...案例分享 null转为空字符串 在我们的使用过程中,遇到过这样的情况对于一个对象,在做序列化的时候,如果遇到了某个item为null,那么gson序列化出来的结果中就不会包含这个属性,这看起来很合理,不过对于我们的项目而言...这里可以先介绍一下gson中TypeAdapter的使用方法,TypeAdapter可以帮助我们自定义序列化/反序列化方式,它的使用也比较简单,首先我们需要定义一个自己的Adapter类,让它继承TypeAdapter...其中参数value就是传入的对象属性,我们判断它是null,就将其转化为空字符串。 写好Adapter类之后,我们在新建gson的时候需要注册我们刚刚定义的Adapter。...讨论 最后留一个问题大家可以和我一起讨论,我们在做反序列化时还遇到了BT的字符串的null,它本身所属的字段是Map类型,这样的Adapter应该怎么写呢?

    1.1K20

    gson参数走私浅析

    原文首发在:奇安信攻防社区https://forum.butian.net/share/3801Gson 是一个由 Google 开发的 Java 库,用于将 Java 对象序列化为 JSON 格式,以及将...JSON 字符串反序列化为 Java 对象。...0x00 前言Gson 是一个由 Google 开发的 Java 库,用于将 Java 对象序列化为 JSON 格式,以及将 JSON 字符串反序列化为 Java 对象。...除此之外,前面还提到,Gson可以通过MapTypeAdapterFactory对map类型的数据进行解析,看一个实际的例子:Map map = gson.fromJson(body,HashMap.class...;在实际解析的时候可以看到,gson在解析Map类型时对重复键值的情况做了校验,一定程度上规避了重复键值带来的参数走私风险:可以看到当解析如下带有重复键值的JSON数据时,会抛出com.google.gson.JsonSyntaxException

    8510

    如何更好的使用Gson

    gson是Google开源的一个Java序列化库,它具有以下特点: 使用简单,只需要掌握toJson()和fromJson()两个方法就可以实现Java对象和JSON字符串之间的序列化和反序列化 允许将现有的不可修改的对象与...案例分享 null转为空字符串 在我们的使用过程中,遇到过这样的情况对于一个对象,在做序列化的时候,如果遇到了某个item为null,那么gson序列化出来的结果中就不会包含这个属性,这看起来很合理,不过对于我们的项目而言...这里可以先介绍一下gson中TypeAdapter的使用方法,TypeAdapter可以帮助我们自定义序列化/反序列化方式,它的使用也比较简单,首先我们需要定义一个自己的Adapter类,让它继承TypeAdapter...其中参数value就是传入的对象属性,我们判断它是null,就将其转化为空字符串。 写好Adapter类之后,我们在新建gson的时候需要注册我们刚刚定义的Adapter。...讨论 最后留一个问题大家可以和我一起讨论,我们在做反序列化时还遇到了BT的字符串的null,它本身所属的字段是Map类型,这样的Adapter应该怎么写呢?

    1.5K00

    Gson 简单使用姿势小结

    ); 上面的 case 中,主要就是借助gson.toJson来输出 Json 字符串,借助gson.fromJson返序列化得到对象 3....对象序列化 对象的序列化与反序列化可以说是最常见的,在 Gson 的使用过程中,推荐的对象写法 filed:private 修饰 不希望序列化的成员,添加transient修饰符 默认无参构造方法(可选...串中 对象没有 Get/Set 方法,也依然可以反序列化(对象也没有继承自 Serialize 接口,当然我个人的观点是请继承 Serialize 接口) 如果我希望将 null 的成员,也可以输出到...JsonObject 与 JsonArray 某些场景下我们可能并没有定义反序列化的数据对象,比如 FastJson 中的直接反序列化为JSONObject/JSONArray,然后手动获取数据进行业务处理...泛型序列化 以上属于常规的基本使用姿势,实际的工作中,关于泛型的序列化和反序列化可以说非常常见了,那么应该如何处理呢 public static class ResWrapper { private

    78320

    人生苦短,我用Gson

    1、Gson实例化方法 Gson gson = new Gson(); Gson gson = new GsonBuilder().create(); 第二种初始化方法,可以选择更多的序列化与反序列化方式...2、Gson基本用法 gson主要提供了fromJson和toJson两个方法,fromJson用于反序列化,toJson用于把json序列化为Json字符串。...Gson的强悍之处,普通的类库序列化和反序列时必须要求所对应的类中属性必须含有setter和getter方法,Gson完全不需要。...:18} 2、暴露序列化注解@Expose 使用此注解时就可以选择性的序列化类的属性,前面介绍的方法都是直接使用new Gson(),toJson()和fromJson()方法,这会将全部的字段序列化或反序列化...五、总结 Gson是Google公司发布的一个开放源代码的Java库,主要用途为序列化Java对象为JSON字符串,或反序列化JSON字符串成Java对象。

    2.2K50

    大型项目废弃fastjson迁移至Gson保姆级攻略

    所以对于大型项目,想要做到将底层的fastjson迁移到gson是一件复杂且痛苦的事情,其实对于其他依赖的替换,也都一样。 我总结了如下几个在替换项目依赖过程中要特别重视的问题。...List/Map写入 这一点fastjson和Gson有区别,Gson不支持直接将List写入value,而fastjson支持。...fastjson:Date直接解析为Unix Gson:直接序列化为标准格式Date [1610445595059-image.png] 导致了Gson在反序列化这个json的时候,直接报错,无法转换为...new MyDateTypeAdapter()).create(); 这样就可以让Gson将Date处理为Unix。...在Gson中,JsonObject若是有数字字段,会统一序列化为double,也就是会把count = 0这种序列化成count = 0.0。 为何会有这种情况?

    1.8K40

    SpringBoot的序列化和反序列化

    java.io.ObjectInputStream:表示对象输入流 ,它的readObject()方法源输入流中读取字节序 列,再把它们反序列化成为一个对象,并将其返回。...流程图如下: 前端发来请求后,先调用HttpInputMessage从输入流中获取Json字符串,然后在HttpMessageConverter中把Json转换为接口需要的形参类型。...默认为false 配置前:默认不输出为null的字符型字段 配置后:字符类型字段如果为null,输出为”” 方式二 重写TypeAdapter 问题引入:在使用Gson将HashMap<String...(),List.class); System.out.println(numList.get(0)); } 这是因为在反序列化的过程中,Gson会根据待解析的类型定位到具体的TypeAdaptor...类,并通过该类的read方法组装成最后的对象,由于Map对应的是Object,这里的Gson最终定位到内置的ObjectTypeAdaptor类,该类的关键代码如下:我们可以看到,数值类型(NUMBER

    2.5K40

    Android框架-Google官方Gson解析

    Gson(又称Google Gson)是 Google 公司发布的一个开放源代码的 Java库,主要用途为序列化 Java 对象为 JSON 字符串,或反序列化 JSON 字符串成 Java 对象。...System.out.println("这是map集合转化为json:" + json_str2); //3.2、从json字符串转化为map集合 Type type2...:这个其实挺有意思的,我们知道如果json转换成字符串会包含引号的转义,但是通过 JsonPrimative 我们可以获得为转义的字符串 public class JsonTest { public...还有一种更高级的手法进行序列化和反序列化,那就是 TypeAdapter ,就是就是对象 json 之间的互相转换 接替了T 泛型类的序列化和反序列化的逻辑,大家如果有兴趣可以去看一下源码,2.1版本之前后的用法是不一样的...在 javaBean 中编号 per_id 声明的事 int 类,如果服务端返回的是""空字符串,那么客户端该怎么办?崩溃吗?

    1.1K20

    Java序列化引发的血案

    2、什么是序列化和反序列化 序列化是将内存中的对象信息转化成可以存储或者传输的数据到临时或永久存储的过程。...大家可以回忆一下,平时都是如果将文字文件、图片文件、视频文件、软件安装包等传给小伙伴时,这些资源在计算机中存储的方式是怎样的。进而再思考,Java 中的对象如果需要存储或者传输应该通过什么形式呢?...而想要将 Java 中的对象进行网络传输或存储到文件中,就需要将对象转化为二进制字节流,这就是所谓的序列化。存储或传输之后必然就需要将二进制流读取并解析成 Java 对象,这就是所谓的反序列化。...JSON 序列化是基于 JSON 这种结构来实现的。JSON 序列化将对象转化成 JSON 字符串,JSON 反序列化则是将 JSON 字符串转回对象的过程。...作为服务提供方,可以采用 JDK 或者 Hessian 等序列化方式; 作为服务的使用方,我们不要从 Map 中一个字段一个字段获取和转换,可以使用 JSON 库直接将 Map 映射成所需的对象,这样做不仅代码更简洁还可以避免强转失败

    47120

    toString如何转json

    那么针对上面提到的toString转json,换句话说,也就是toString反序列化为json,就可以参考类似json的反序列化机制来完成。...toString转json步骤如下: 首先要将toString字符串解析成一个个token,token就是key=value这种格式,比如上述中的 "name=张三" 字符串,不管key和value是基本类型还是对象...针对value是"null"字符串,当做空值null来处理。...中)JSON反序列化支持这种处理格式,因此将其设置成字符串是OK的。...日常开发中有些场景可能需要将java对象的toString格式转换为json格式来使用,毕竟json格式较为通用并且很容易将其反序列化为对应Java对象,常见的场景有:写单测时,mock一个复杂对象,从日志中可以获取到了对象

    7K41

    Gson 系列文章

    JSON 序列化和反序列化入门 Java-JSON 序列化基础 先来看一些序列化例子,Gson 中的序列化意味着将 Java 对象映射成 JSON 数据格式,在接下来的教程中,我们会逐步介绍一些更复杂的情况...Gson - Map 结构映射 Java Map 序列化 Java 中的 Map 是一个非常灵活的数据结构,被用在很多场景,使用 Java 可以自由的实现应用。...-空值映射 我们来看一个有趣的问题,Gson中是如何处理 null 情况的?...就为空,同样都填上也是可以的,也可以使用 “ {} “ 传多个值,如果 json 中同时存在多个匹配的值,只会取 alternate 中最后一个匹配的值。...reviewerName; //不用分隔线,采用驼峰命名 } Gson Builder — 序列化空值 序列化空值 之前的例子中,空值的映射中,如果你的数据结构中没有给字段赋值或者设置 null,序列化的

    15.6K10

    终于放弃了fastjson,迁移至Gson!

    所以对于大型项目,想要做到将底层的fastjson迁移到gson是一件复杂且痛苦的事情,其实对于其他依赖的替换,也都一样。 我总结了如下几个在替换项目依赖过程中要特别重视的问题。...List/Map写入 这一点fastjson和Gson有区别,Gson不支持直接将List写入value,而fastjson支持。...fastjson:Date直接解析为Unix Gson:直接序列化为标准格式Date 导致了Gson在反序列化这个json的时候,直接报错,无法转换为Date。...在Gson中,JsonObject若是有数字字段,会统一序列化为double,也就是会把count = 0这种序列化成count = 0.0。 为何会有这种情况?...如果Json对应的是Object类型,最终会解析为Map类型;其中Object类型跟Json中具体的值有关,比如双引号的""值翻译为STRING。

    1.5K20
    领券