{
"random": {
"5756cd7a-4662-4428-9b09-dbff3080450a": {
"@class": "one",
"id": "5756cd7a-4662-4428-9b09-dbff3080450a"
},
"857ef5ee-af98-4f24-89fe-29bdbebde882": {
"@class": "two",
"id": "857ef5ee-af98-4f24-89fe-29bdbebde882"
}
}
}
这是我的api'响应',它是JsonPath类型。
String random = response.getString("random");
关于如何提取第一个随机元素,我在此之后陷入困境。
答案 0 :(得分:0)
通过查看文档,您可以使用JsonPath#getMap
进行提取,例如:
final Map<String, RandomObject> result = response.getMap("random", String.class, RandomObject.class);
RandomObject
的位置如下:
public class RandomObject {
private String klass; // N.B. Not sure how to deal with @class naming
private String id;
// ... constructor/setters/getters etc...
}
虽然,我对这个JsonPath
库不太熟悉,所以它可能不那么容易。
答案 1 :(得分:0)
假设您在响应JsonString中将您的json响应作为字符串,下面的代码可以解决您的问题。
List<String> randomIDS = JsonPath.read(responseJsonString, "$.random..id");
Collections.reverse(randomIDS);
for (String randomID : randomIDS) {
StringBuilder stringBuilder = new StringBuilder("$.random.");
String randomClass = JsonPath.read(
responseJsonString,
stringBuilder.append(randomID).append(".@class").toString());
System.out.println(randomClass);
}