使用 RestAssured 反序列化但不遵循 jsonpath
Deserialization using RestAssured but without following jsonpath
我有来自服务器的以下响应正文:
{
level1: {
main1.abc: "A string",
main1.def: "Another text",
main2.abc: "Something else"
}
}
并且我正在使用 restAssured 来处理响应。我想把它作为映射来获取,其中的键代表完整的字符串及其相关值。
我以前做过,但是这里点符号被自动处理为 jsonpath,所以它也被反序列化,产生以下链接的哈希映射:
level1 (key) > main1 (key) > abc (key) > "A string" (value)
> main1 (key) > def (key) > "Another text" (value)
> main2 (key) > abc (key) > "Something else" (value)
通过调用
then().extract().body().jsonpath().getMap("");
我无法在 jsonPathConfig 中找到任何特定设置来控制它。
我是不是看错地方了?
谢谢!
我使用 Rest-Assured 版本 4.4.0,它对你来说工作正常json。
@Test
void SO_69573815() {
String text = "{\n" +
" \"level1\": {\n" +
" \"main1.abc\": \"A string\",\n" +
" \"main1.def\": \"Another text\",\n" +
" \"main2.abc\": \"Something else\"\n" +
" }\n" +
"}";
Map<String, Map<String, Object>> map = JsonPath.from(text).getMap("");
System.out.println(map.get("level1").get("main1.abc"));
//A string
}
我有来自服务器的以下响应正文:
{
level1: {
main1.abc: "A string",
main1.def: "Another text",
main2.abc: "Something else"
}
}
并且我正在使用 restAssured 来处理响应。我想把它作为映射来获取,其中的键代表完整的字符串及其相关值。
我以前做过,但是这里点符号被自动处理为 jsonpath,所以它也被反序列化,产生以下链接的哈希映射:
level1 (key) > main1 (key) > abc (key) > "A string" (value)
> main1 (key) > def (key) > "Another text" (value)
> main2 (key) > abc (key) > "Something else" (value)
通过调用
then().extract().body().jsonpath().getMap("");
我无法在 jsonPathConfig 中找到任何特定设置来控制它。 我是不是看错地方了?
谢谢!
我使用 Rest-Assured 版本 4.4.0,它对你来说工作正常json。
@Test
void SO_69573815() {
String text = "{\n" +
" \"level1\": {\n" +
" \"main1.abc\": \"A string\",\n" +
" \"main1.def\": \"Another text\",\n" +
" \"main2.abc\": \"Something else\"\n" +
" }\n" +
"}";
Map<String, Map<String, Object>> map = JsonPath.from(text).getMap("");
System.out.println(map.get("level1").get("main1.abc"));
//A string
}