问题标签 [java-custom-serialization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
273 浏览

hibernate - 如何使用 Hazelcast 为两个不同的应用程序设置 Hibernate L2 缓存,具有不同的包名称和实体名称

我使用 Hazelcast 作为休眠的 2L 缓存提供程序。我的问题是我试图使用便携式序列化,但默认情况下,当应用程序工作时,它使用 hazelcast.hibernate.region 包中的 CacheKeyImpl 类进行密钥序列化。如何禁用这种序列化方式?

CacheKeyImpl 包含私有字符串 entityOrRoleName;字段,它存储实体的完整路径,这就是为什么我不能将 Hazelcast 缓存设置为在两个不同的应用程序中正常工作(因为在处理数据库的不同项目中,实体的路径是不同的,所以这就是为什么 Keys of同一实体在序列化后具有不同的值)。有人面临类似的问题吗?提前致谢。

0 投票
2 回答
1145 浏览

java - 使用 ReadObject 和 WriteObject 的自定义序列化

我正在尝试使用 WriteObject 方法编写 pojo 类的实例。当我写这样的代码时:

它工作正常,但是当我尝试创建一个新的本地对象并将其传递给 writeObject 方法时,它失败了

线程“主”java.lang.StackOverflowError 中的异常

有人可以解释一下为什么它会一遍又一遍地递归调用 writeObject 方法吗?

0 投票
0 回答
216 浏览

java - 序列化时动态更改属性名称 Gson

我有自定义对象类型的 MultivaluedMap,我正在使用 Gson 对其进行序列化。我的要求之一是根据字符串的长度将其中一个对象的名称更改为其他名称。

我知道我们可以使用注释@SerializedName,但它只提供一个名称替代选项,而我正在为同一属性寻找两个名称,并在基于字符串长度进行序列化时动态使用它。

我怎样才能做到这一点?

这是我的自定义对象类型的大纲:

顶级类:

自定义文档类:

RecipientInfo 类:

现在我创建List<CompleteData> completeData = new ArrayList<>(); Gather 所有必要的信息并将其添加到 MultivaluedMap 因为涉及重复键:

现在,在使用 Gson 序列化此对象时,我想更改 RecipientInfo 类中的“名称”属性,以便能够根据字符串长度动态更改为全名,如果长度为(>10 和 <15),如果长度为 fullNamewithSalu >20

我应该为这个小改动一起创建一个新类,还是有办法可以动态地使用 Gson 序列化这个对象?

请帮忙!

谢谢!

0 投票
1 回答
92 浏览

spring-boot - 带有spring boot的json序列化器

我有BigDecimalSerializer

接着

有什么方法可以代替在每个成员变量中进行注释,而是立即告诉 spring boot 适用于所有项目?

0 投票
1 回答
193 浏览

java - 如何序列化其方法具有多个参数的对象

我是java的初学者,我需要帮助。我有两个班级,一个(宋)看代码是第二个(日期)的孩子。Song 是可序列化的,而 Date 是不可序列化的(我打算以这种方式保留 Date 类)。我正在使用来自 Date 的方法,称为 setDate,它需要三个参数,月、日和年,都是整数。我正在尝试使用自定义序列化(使用 readObject 和 writeObject 方法等)。

}

问题是 getDateOpen 方法返回一个字符串,而 setDateOpen 需要 3 个整数。有没有办法让 readObjects() 读取 3 个整数并仍然输出序列化字符串?(iv'e 还包括我的老师说不要更改的日期课程)

0 投票
1 回答
212 浏览

java - How to set a custom serializer to ever API endpoint (spring app) with a specific annotation?

let's say I have a controller with an endpoint.

In the book object I like to only serialize some fields.

Now I only want to serialize the "name" field from the book instance. And only from endPoint with annotation like "getBookOnlyName"

0 投票
4 回答
741 浏览

java - 杰克逊自定义序列化器与空值被抑制

我有一个自定义序列化程序来将具有空白值的字符串视为 null 并修剪尾随空格。以下是相同的代码。-

在主bean定义中,属性定义如下——

在自定义序列化程序启动的情况下,不忽略非空值。

例如:

writeValueAsString 的输出: {"id": 1, "attribute1": "abc", "attribute2": null}

由于我在属性 2 中有 @JsonInclude(Include.NON_NULL) ,因此预期的输出如下。{“id”:1,“attribute1”:“abc”}

有没有办法做到这一点?

0 投票
0 回答
113 浏览

java - 无法使用 custon jackson 解析器序列化嵌套对象

我为我的 java 类创建了一个自定义序列化程序,其中包含许多嵌套对象。

我的动机是在序列化的 JSON 对象中添加 java 类的类型。

ex 我的班级类型是学生,创建的 JSON 是

我想把它当作

这并不难。我的问题是我的对象就像

我想为每个参数添加类型,剩下的所有东西都应该保持正常的序列化。

我尝试的是

这给了我一些不正确的结果。

如果我能让自己更清楚,请告诉我。