我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 参数无济于事。我想知道是否可以将这个库用于复杂的对象。
默认情况下,杰克逊使用反斜杠转义双引号:\“。因此json对象看起来像
{"title": "Testing \"double quotes\""}
Run Code Online (Sandbox Code Playgroud)
我想用两个反斜杠转义双引号:\\“。像这样
{"title": "Testing \\"double quotes\\""}
Run Code Online (Sandbox Code Playgroud)
如何为双引号自定义杰克逊序列化策略?