小编kal*_*ali的帖子

Java 对象差异:如何将差异应用于对象

A'server_1上有一个包含列表、地图和其他集合的对象。然后我将此对象发送到server_2

之后,在server_1 上,对象A'更改为 state A''

关键是A''没有太多变化,并且将整个对象发送A''server_2很昂贵。

因此,如果我想更新server_2A'上对象的状态,我必须将这些对象之间的差异发送给server_2,然后应用到.dA = A'' - A'dAA'

我尝试使用两个库来获取dA

但是现在我很困惑如何将差异dA应用于server_2A'上的对象。

有人知道如何解决此问题或此用例的任何其他库吗?

编辑:对象结构示例(这个版本比实际对象简单一点):

class Outer {
    SimpleObj val1;
    List<ComplexObj> list;
    Map<String, Map<String, List<OtherComplexObj>> map;
}
Run Code Online (Sandbox Code Playgroud)

在不使用任何库的情况下递归检查所有字段似乎很复杂。

编辑:有一个 spring-synk 库。它是为我自己的情况而设计的,但我在为我的对象创建差异时遇到了 StackOverflowError。这个问题是由于我的对象的复杂性引起的,但我现在无法简化它。更改 jvm 参数无济于事。我想知道是否可以将这个库用于复杂的对象。

java compare graph object

5
推荐指数
1
解决办法
407
查看次数

Jackson:将对象序列化为json时,自定义转义双引号

默认情况下,杰克逊使用反斜杠转义双引号:\“。因此json对象看起来像

{"title": "Testing \"double quotes\""}
Run Code Online (Sandbox Code Playgroud)

我想用两个反斜杠转义双引号:\\“。像这样

{"title": "Testing \\"double quotes\\""}
Run Code Online (Sandbox Code Playgroud)

如何为双引号自定义杰克逊序列化策略?

java serialization json jackson

1
推荐指数
1
解决办法
9961
查看次数

标签 统计

java ×2

compare ×1

graph ×1

jackson ×1

json ×1

object ×1

serialization ×1