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

我使用gson序列化一个java对象,并将LongSerializationPolicy设置为LongSerializationPolicy.STRING,但我无法理解结果

使用gson序列化一个Java对象,并将LongSerializationPolicy设置为LongSerializationPolicy.STRING,意味着将Java对象中的Long类型属性以字符串形式进行序列化。

在默认情况下,gson会将Long类型的属性以数字形式进行序列化,例如:

代码语言:java
复制
class MyObject {
    Long id;
    // other properties
}

MyObject obj = new MyObject();
obj.id = 123456789L;

Gson gson = new Gson();
String json = gson.toJson(obj);
System.out.println(json);

输出结果为:

代码语言:txt
复制
{"id":123456789}

然而,当将LongSerializationPolicy设置为LongSerializationPolicy.STRING时,gson会将Long类型的属性以字符串形式进行序列化,例如:

代码语言:java
复制
Gson gson = new GsonBuilder()
    .setLongSerializationPolicy(LongSerializationPolicy.STRING)
    .create();

String json = gson.toJson(obj);
System.out.println(json);

输出结果为:

代码语言:txt
复制
{"id":"123456789"}

这样做的好处是可以避免在前端或其他系统中处理大整数时可能出现精度丢失的问题。同时,以字符串形式进行序列化也更符合一些特定的业务需求,例如需要将Long类型的属性作为字符串进行比较或存储。

推荐的腾讯云相关产品是腾讯云对象存储(COS),它是一种高可靠、低成本、安全可扩展的云存储服务,适用于存储和处理大规模非结构化数据。您可以使用腾讯云COS来存储序列化后的JSON数据,以及其他任何类型的文件或对象。您可以通过以下链接了解更多关于腾讯云COS的信息:腾讯云对象存储(COS)

希望以上解答能够帮助您理解gson序列化中设置LongSerializationPolicy为LongSerializationPolicy.STRING的结果。如果您有任何其他问题,请随时提问。

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

相关·内容

Gson:我爸是 Google

01、前世今生 Gson,是一款开源的 Java 库,主要用途序列化 Java 对象 JSON 字符串,或反序列化 JSON 字符串成 Java 对象。...04、使用指南 不是自吹自擂,是真的,还是挺好用的,上手难度几乎零。...3)如果一个字段被 transient 关键字修饰的话,它将不参与序列化。 4)如果一个字段的值 null,它不会在序列化后的结果中显示。...5)JSON 中缺少的字段将在反序列化设置默认值,引用数据类型的默认值 null,数字类型的默认值 0,布尔值默认为 false。 接下来,来看一个序列化集合的例子。...爱的是,这种追求完美的态度;恨的是,她有时候力不从心,帮不上忙。 使用 toJson() 序列化 Java 对象时,返回的 JSON 字符串中没有空格,很紧凑。

92320

Google Gson用法详解

一、简介 Gson(又称Google Gson)是Google公司发布的一个开放源代码的Java库,主要用途序列化Java对象JSON字符串,或反序列化JSON字符串成Java对象。...如果有多个字段匹配一个属性,则Gson使用最后处理的那个。 9.2、序列化期时更改字段名称 让我们以只有四个字段的Employee类例。...对于反序列化,如果shouldSkipClass(Class)或shouldSkipField(fieldAttributes)方法返回true,则不会将其设置Java对象结构的一部分。...对于反序列化,如果shouldSkipClass(Class)返回true,则不会将其设置Java对象结构的一部分。 shouldSkipField(attribute)方法也是相同的规则。...JsonElement parse(java.io.Reader json)–使用指定的阅读器读取JSON并将JSON字符串解析解析树。

21.9K31
  • Gson 系列文章

    今天开始学习 Google 的 Gson 库,Gson一个非常强大的库,可以将 JSON 格式的数据转化成 Java 对象,也支持将 Java 对象转成 JSON 数据格式。...Array 和 List 序列化 接下来,我们restaurant 添加一个 menu 属性,包含两个字段,restaurant 中的菜单可以理解一个 restaurant 列表。...Gson - Map 结构映射 Java Map 序列化 Java 中的 Map 是一个非常灵活的数据结构,被用在很多场景,使用 Java 可以自由的实现应用。...Gson Advanced — 泛型 泛型序列化 之前使用 Gson 来解析 Java 对象,我们必须传入要解析的 Java class 类型,先来看例子。...,这样我们就不用使用 GsonBuilder 它来创建的 Gson 对象,而是使用默认创建对象就可以,也不需要那些复杂的设置

    15.6K10

    gson 替换 fastjson 引发的线上问题分析

    ,这可就要命了,相信很多小伙伴也是不胜其苦,考虑了使用其他序列化框架替换 fastjson。...问题描述 线上一个非常简单的逻辑,将对象序列化成 fastjson,再使用 HTTP 请求将字符串发送出去。原本工作的好好的,在将 fastjson 替换为 gson 之后,竟然引发了线上的 OOM。...,是将除第一个对象外的其他对象使用引用符号 $ref 进行了标记。...;gson 不支持 fastjson 可以设置 DisableCircularReferenceDetect,关闭循环引用和重复引用的检测 gson序列化之前的同一个引用的对象,在经历了序列化再反序列化回来之后...,不会被认为是同一个对象,可能会导致内存对象数量的膨胀;而 fastjson、java、hessian2 等序列化方式由于记录的是引用标记,不存在该问题 以笔者的测试 case 例,hessian2

    83920

    gson 替换 fastjson 引发的线上问题分析

    ,这可就要命了,相信很多小伙伴也是不胜其苦,考虑了使用其他序列化框架替换 fastjson。...问题描述 线上一个非常简单的逻辑,将对象序列化成 fastjson,再使用 HTTP 请求将字符串发送出去。...处理重复对象,是将除第一个对象外的其他对象使用引用符号 $ref 进行了标记。...;gson 不支持 fastjson 可以设置 DisableCircularReferenceDetect,关闭循环引用和重复引用的检测 gson序列化之前的同一个引用的对象,在经历了序列化再反序列化回来之后...,不会被认为是同一个对象,可能会导致内存对象数量的膨胀;而 fastjson、java、hessian2 等序列化方式由于记录的是引用标记,不存在该问题 以笔者的测试 case 例,hessian2

    1.7K20

    FastJSON、Gson、Jackson(简单了解使用

    大家好,是架构君,一个会写代码吟诗的架构师。今天说一说FastJSON、Gson、Jackson(简单了解使用)[通俗易懂],希望能够帮助大家进步!!!...q=Gson 下载教程(已gson例): 简单了解 一、Jackson 1、简介: Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成...二、Gson 1、简介: Google提供的用来java对象和JSON数据之间进行映射的JAVA类库,可以将一个JSON字符转成一个java对象,反过来也OK。...FastJSON、Gson和Jackson性能对比 JSON序列化(Object => JSON) 测试样本数量100000个,为了保证每个类库在测试中都能处理同一个样本,先把样本Java对象保存在文件中...JSON反序列化(JSON => Object) 测试样本数量100000个,为了保证每个类库在测试中都能处理同一个样本,先把样本JSON对象保存在文件中。

    4.2K20

    【Netty】「项目实战」(三)序列化算法选型对聊天室可扩展性的影响

    oos.writeObject(object); 4、最后将 bos 转换为字节数组,并将其作为结果返回。...这里使用泛型 T 来保留原始对象的类型信息。 (T) ois.readObject(); 4、将步骤3的反序列化后的对象作为结果返回。...反序列化过程中,如果传入的字节数组无法正确反序列化为指定类型的对象,会抛出 ClassNotFoundException 异常。...String json = new Gson().toJson(object); 2、然后,使用字符串的 getBytes 方法将 JSON 字符串转换为字节数组,并指定字符编码 UTF-8。...String json = new String(bytes, StandardCharsets.UTF_8); 2、然后,使用 Gson 的 fromJson 方法将字符串转换为目标对象的实例,并将其返回作为结果

    26831

    Gson 笔记

    默认方法 在这种方法中,可以使用new关键字实例化GSON对象。这种方法创建了一个没有设置的object实例。...构造器设置方法 在这种方法中,可以使用GsonBuilder类和create方法创建一个GSON对象: Gson gson = new GsonBuilder().create(); 它返回一个Gson...使用Java对象进行序列化 JSON对象的字符串 fromJson 第一个参数是JSON对象的字符串,第二个参数是预期的Java类型 预期的Java对象 基本数据类型的解析 Gson gson =...为了解决这个问题,GsonBuilder支持漂亮的打印配置,同时序列化使用创建一个Gson对象。这个格式化打印功能通过适当的标签缩进和新的换行来美化JSON字符串的输出。...getType()方法返回具有泛型参数的原始类类型,它帮助GSON正确地反序列化对象并将正确值输出25。

    3.7K10

    如何更好的使用Gson

    gson是Google开源的一个Java序列化库,它具有以下特点: 使用简单,只需要掌握toJson()和fromJson()两个方法就可以实现Java对象和JSON字符串之间的序列化和反序列化 允许将现有的不可修改的对象与...JSON互相转换 对Java的泛型支持的很好 允许自定义一些对象的表现形式 支持复杂对象序列化 使用gson 那现在我们就来体验一下gson的第一特性,使用简单。...案例分享 null转为空字符串 在我们的使用过程中,遇到过这样的情况对于一个对象,在做序列化的时候,如果遇到了某个itemnull,那么gson序列化出来的结果中就不会包含这个属性,这看起来很合理,不过对于我们的项目而言...此时前端就会展示「用户没有姓名信息」,如果把name设置成空字符串,那么序列化结果就会不同。...这时再将name设置null,序列化结果就是我们期望的结果了。

    1.1K20

    如何更好的使用Gson

    gson是Google开源的一个Java序列化库,它具有以下特点: 使用简单,只需要掌握toJson()和fromJson()两个方法就可以实现Java对象和JSON字符串之间的序列化和反序列化 允许将现有的不可修改的对象与...JSON互相转换 对Java的泛型支持的很好 允许自定义一些对象的表现形式 支持复杂对象序列化 使用gson 那现在我们就来体验一下gson的第一个特性,使用简单。...案例分享 null转为空字符串 在我们的使用过程中,遇到过这样的情况对于一个对象,在做序列化的时候,如果遇到了某个itemnull,那么gson序列化出来的结果中就不会包含这个属性,这看起来很合理,不过对于我们的项目而言...此时前端就会展示「用户没有姓名信息」,如果把name设置成空字符串,那么序列化结果就会不同。...这时再将name设置null,序列化结果就是我们期望的结果了。

    1.5K00

    SpringBoot的序列化和反序列化

    序列化与反序列化 1、认识序列化与反序列化 Java序列化是指把Java对象转换为字节序列的过程,而Java序列化是指把字节序列恢复Java对象的过程。 2、为什么要实现对象序列化和反序列化?...3、序列化与反序列化的实现 被序列化对象需要实现java.io.Serializable接口,该接口只是一个标记接口,不用实现任何方法。...java.io.ObjectOutputStream:表示对象输出流 , 它的writeObject(Object obj)方法可以对参 数指定的obj对象进行序列化,把得到的字节序列写到一个目标输出流中...java.io.ObjectInputStream:表示对象输入流 ,它的readObject()方法源输入流中读取字节序 列,再把它们反序列化成为一个对象并将其返回。..., "course":["java","python"] } 在 Spring Boot 中, 想要一个接口接收Json格式的数据并返回Json格式的数据,前端将http请求头“Accept”设置

    2.4K40

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

    从描述可以看出,Gson 是用于将 Java 对象与 JSON格式字符串数据相互转换的 Java 库。它起初在Google 内部广泛使用在 Android 平台 和 Java 服务端上。...从结果可以看出,默认的 Gson 对象行为序列化对象时会将 null 值的字段忽略,而执行 com.google.gson.GsonBuilder#serializeNulls 方法后将允许 Gson...简单对象的反序列化 现在我们再来看下 JSON 反序列化Java 对象用法,这里主要使用方法是 com.google.gson.Gson#fromJson,它最基础的用法就是 fromJson(String...而这里 TypeToken 是 Gson 为了支持泛型而引入的类,来解决 Java 无法提供泛型类型表示的问题,由于 TypeToken 的构造方法是protected修饰的,无法直接构造,使用就需要写成...同样地,该注解只针对使用 GsonBuilder 方式构建的 Gson 对象,并且使用 setVersion 方法指明版本号时有效,设置后只会解析对象中对应版本的字段,下面具体示例: public class

    1.3K30

    Gson-更新中

    概述 通用框架-网络编程-Gson ? Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。...可以使 JSON 字符串 和 Java 对象之间相互转换。...JSON,反之亦然 允许预先存在的不可修改的对象和JSON之间相互转换 广泛支持Java的泛型的 允许对对象的自定义交涉 支持任意复杂的对象(深继承层次和广泛使用泛型) Gson Download 目前最新的版本...比如,在android studio中使用Gson 在项目的build.gradle中加入 compile 'com.google.code.gson:gson:2.6.2' 然后同步即可自动下载Gson...如果一个字段被标记为transient,(默认的),它被忽略,不包括在JSON序列化和反序列化 实现能够正确处理空值 序列化时,如果是个空字段,不会输出 在反序列化JSON的结果,缺少条目中的对象设置相应字段

    63620

    Redis入门,是认真的

    我们这篇入门的文章就以 String 例吧。 String 结构使用非常广泛,比如说把用户的登陆信息转成 JSON 字符串后缓存起来,等需要取出的时候再反序列化一次。...小伙伴们应该都知道,Java 的 String 是不可变的,无法修改。Redis 的 String 是动态的,可以修改的,两者不同哦。...05、在 Java使用 Redis 有些小伙伴可能会问,“二哥,是一名 Java 程序员,该如何在 Java使用 Redis 呢?”这个问题问得好,这就来,这就来。...3)Gson 是谷歌提供的一个开源库,可以将 Java 对象序列化为 JSON 字符串,同样可以将 JSON 字符串反序列化(解析)匹配的 Java 对象。...使用起来也非常简单,toJson() 方法将对象转成 JSON 字符串,fromJson() 方法将 JSON 字符串反序列化对象

    62920

    SpringMVC处理json(三)

    使用Gson库处理JSON数据Gson是Google提供的Java库,用于将Java对象序列化为JSON字符串,或将JSON字符串反序列化Java对象。...Gson提供了一个简单而灵活的API,可以帮助我们快速地将Java对象转换为JSON字符串,或将JSON字符串转换为Java对象。下面介绍如何在SpringMVC中使用Gson处理JSON数据。...getUser方法中创建了一个User对象,并使用new Gson().toJson方法将User对象序列化为JSON字符串,并返回给浏览器。...反序列化JSON字符串除了将Java对象序列化为JSON字符串之外,Gson还可以将JSON字符串反序列化Java对象。...createUser方法中使用@RequestBody注解获取请求体中的JSON字符串,并使用new Gson().fromJson方法将JSON字符串反序列化为User对象并将User对象保存到数据库中

    57940

    How to Ignore Unknown Properties While Parsing JSON in Java

    使用像Jackson或Gson这样的库来将JSON数据解析Java对象时,有时会碰到JSON数据中包含Java类中不存在的属性的情况。在这种情况下,可以通过忽略这些未知属性来避免错误的发生。...使用Jackson库Jackson是Java中流行的JSON处理库。它提供了各种注解和功能来控制JSON数据的序列化和反序列化。...使用GsonGsonJava中另一个常用的JSON处理库。它也提供了一种方法来在JSON解析时忽略未知属性,使用​​GsonBuilder​​类配置。...通过使用注解或配置库的设置,可以轻松地忽略未知属性并将JSON数据无缝解析Java对象。 本文中,我们探讨了如何使用Jackson和Gson库来忽略未知属性。...通过使用注解或配置库的设置,您可以轻松地忽略未知属性并将JSON数据解析Java对象

    30840

    java:关于json解析工具选型(JSON-java,json-lib,gson,fastjson)

    最近的项目需要对java 对象和json之间的序列化和反序列化,更准确的说是java bean对象和json之间的转换,使用哪个工具进行转换,让犹豫了不少时间。...JSON-java代码非常少,也很简洁易懂,对于json入门者真的非常适合阅读理解。...google-gson google出品的东西质量都不会差,gson拥有非常快的序列化序列化速度,使用起来也非常方便灵活,网上有不少资料介绍它的用法。...但是目前gson是基于字段序列化的(fields-based),而不是基于getter/setter方法来决定哪些字段需要被序列化(properties),也就是就说对于一个对象中的成员(field),...只希望将拥有getter/setter方法的成员序列化,使用gson会将其他不需要被序列化的private成员也输出到json字符串中,这无疑是多余的,会让json体积更大。

    1.8K60

    终于放弃了fastjson,迁移至Gson

    本篇文章是一个多月来帮助组内废弃fastjson框架的总结,我们将大部分Java仓库从fastjson迁移至了Gson。...使用简单 fastjson的API十分简洁。 Jackson 容易使用 - jackson API提供了一个高层次外观,以简化常用的用例。 无需创建映射 - API提供了默认的映射大部分对象序列化。...性能高 - 快速,低内存占用,适合大型对象图表或系统。 干净的JSON - jackson创建一个干净和紧凑的JSON结果,这是让人很容易阅读。 不依赖 - 库不需要任何其他的库,除了JDK。...Gson 提供一种机制,使得将Java对象转换为JSON或相反如使用toString()以及构造器(工厂方法)一样简单。 允许预先存在的不可变的对象转换为JSON或与之相反。...fastjson:Date直接解析Unix Gson:直接序列化为标准格式Date 导致了Gson在反序列化这个json的时候,直接报错,无法转换为Date。

    1.4K20
    领券