Spring JSON修补程序无法更新嵌套映射对象
在我的应用程序中,我试图支持JSON补丁请求,以应用部分更新我的实体,并直接使用Spring数据rest库中Spring提供的补丁实现 我无法使用Spring补丁实现在Java中部分更新映射,或者Spring实现无法支持此类操作 SpringPatch将JSON补丁操作转换为SPEL操作,所有操作都可以使用具有固定属性(或字段)的POJO,但它似乎不适用于我假设“字段”是映射键的映射 知道Spring在幕后将JSON路径转换为SPEL操作,我还尝试在补丁负载中使用SPEL表示法,但没有任何结果。这就是我尝试过的 让我们假设情况就是这样:Spring JSON修补程序无法更新嵌套映射对象,json,spring,spring-data-rest,json-patch,Json,Spring,Spring Data Rest,Json Patch,在我的应用程序中,我试图支持JSON补丁请求,以应用部分更新我的实体,并直接使用Spring数据rest库中Spring提供的补丁实现 我无法使用Spring补丁实现在Java中部分更新映射,或者Spring实现无法支持此类操作 SpringPatch将JSON补丁操作转换为SPEL操作,所有操作都可以使用具有固定属性(或字段)的POJO,但它似乎不适用于我假设“字段”是映射键的映射 知道Spring在幕后将JSON路径转换为SPEL操作,我还尝试在补丁负载中使用SPEL表示法,但没有任何结果。
//这是我的对象
公共课堂用书{
公共字符串作者;
公共字符串ISBN;
公共地图字符;
}
//这里我创建了一个简单的对象实例
Book myBook=新书();
myBook.author=“我”
myBook.ISBN=“1234567890”
myBook.characters=新HashMap();
myBook.characters.put(“主角”、“Pinco”);
myBook.characters.put(“拮抗剂”、“帕洛”);
//这里是工作的操作类型
[
{“op”:“replace”,“path”:“/author”,“value”:“NewAuthor”},
{“op”:“replace”,“path”:“/ISBN”,“value”:0987654321},
]
//如果需要,我也可以完全修改地图
[
{“op”:“替换”,“路径”:“/字符”,“值”:{“主角”:“帕洛”,“对手”:“平科”}
]
//但我无法更新地图中的任何值
[
{“op”:“replace”,“path”:“/字符/主角”,“value”:“Pallo”},
{“op”:“replace”,“path”:“/字符/拮抗器”,“value”:“Pinco”}
]
//我也试过一些奇怪的东西,但都不管用
[
{“op”:“replace”,“path”:“/字符[拮抗剂],“value”:“Pinco”}
]
我希望嵌套映射上的replace操作通过检查键来工作,但可能我做错了什么,或者我应该简单地用正则字段表示所有对象,如POJO,以使其工作。对于所有其他尚未看到相应问题的对象和对此的请求,这里似乎已修复,刚刚为我们的项目验证了它(修补
地图
),它成功了
参考: