Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring JSON修补程序无法更新嵌套映射对象_Json_Spring_Spring Data Rest_Json Patch - Fatal编程技术网

Spring JSON修补程序无法更新嵌套映射对象

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表示法,但没有任何结果。

在我的应用程序中,我试图支持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,以使其工作。

对于所有其他尚未看到相应问题的对象和对此的请求,这里似乎已修复,刚刚为我们的项目验证了它(修补
地图
),它成功了

参考:

为我确认。您的操作似乎得到了纠正。我的看起来很像。