【发布时间】:2019-07-09 08:38:14
【问题描述】:
我想在数据库列中存储一个包含有效 JSON 的字符串。 访问是通过@RepositoryRestResource 完成的。因此,如果我想更改列的值,请求将采用 JSON 格式,包括列名和新值。我想使用 MockMvc 为这个场景编写一个测试用例,向端点发送 PATCH 请求并等待响应。
我试图用引号转义值部分
一开始我有一个方法,它构建 JSON 请求体:
private String tableConfig() {
return "{\n" +
"\"tableConfig\" : " + "\"[\n"
+ "\"listOfProperties\" : [\n"
+ "\"aBooleanProperty\" : true,\n"
+ "\"anIntProperty\" : 5,\n"
+ "\"aStringProperty\" : \"stringValue\""
+ "]"
+ "]\"" +
"}";
}
接下来是测试用例:
@Test
public void testUpdateTableConfig() throws Exception {
mockMvc.perform(
patch("http://localhost/api/usersettings/" + myEntity.getId())
.contentType(MediaType.APPLICATION_JSON_UTF8)
.characterEncoding("UTF-8")
.content(tableConfig())
)
.andExpect(status().isNoContent())
.andReturn();
}
我预计不会收到任何内容响应。相反,我收到一个 400 Bad 请求,所以我假设 Spring 尝试将字符串中的 JSON 值映射到对象树或类似的东西。 有没有办法传递一个包含 JSON 作为值的 JSON 请求,并通过 Spring Data Rest 将原始 JSON 数据转换为字符串?
编辑:按要求添加网址
【问题讨论】:
-
你能添加你的
端点实现吗?
标签: json spring spring-data-rest