放心 - Json 摘录
Rest Assured - Json Extract
我收到以下结构的回复:
[{
"builds": [{
"description": "JP MORGAN",
"land": "FU",
"companyCode": "1234",
"accountNumber": "00000000000",
"shortID4": "XYS"
}
]
}
]
每当我想提取 JSON 属性,例如说明,最终的对象并不如我所料。它创建具有 ArrayString.
的列表
List<String> values = resp.path("builds.description");
每当我想 test/print 由于结构的原因,这不可能。
如何从这个 JSON 对象获取值到包含这些值的简单列表?谢谢
希望以下解决方案之一可以解决您的问题。我推荐你使用第一个。
String responseJson= "[{ \"builds\": [{ \"description\": \"JP MORGAN\", }, { \"description\": \"JP MORGAN\", } ] }]";
JsonPath jp = new JsonPath(responseJson);
List<String> singleDestList = jp.getList("builds[0].description");
System.out.println(singleDestList);
或
List<List<List<String>>> descriptionsList =jp.get("builds.description");
List<Object> flatList = descriptionsList.stream().flatMap(List::stream).collect(Collectors.toList());
System.out.println(flatList.toString());
或
String[] descriptionArray = jp.get("builds.description").toString().replaceAll("\[", "").replaceAll("]", "").split(",");
List<String> descriptionList = Arrays.asList(descriptionArray);
System.out.println(descriptionList);
我收到以下结构的回复:
[{
"builds": [{
"description": "JP MORGAN",
"land": "FU",
"companyCode": "1234",
"accountNumber": "00000000000",
"shortID4": "XYS"
}
]
}
]
每当我想提取 JSON 属性,例如说明,最终的对象并不如我所料。它创建具有 ArrayString.
的列表List<String> values = resp.path("builds.description");
每当我想 test/print 由于结构的原因,这不可能。
如何从这个 JSON 对象获取值到包含这些值的简单列表?谢谢
希望以下解决方案之一可以解决您的问题。我推荐你使用第一个。
String responseJson= "[{ \"builds\": [{ \"description\": \"JP MORGAN\", }, { \"description\": \"JP MORGAN\", } ] }]";
JsonPath jp = new JsonPath(responseJson);
List<String> singleDestList = jp.getList("builds[0].description");
System.out.println(singleDestList);
或
List<List<List<String>>> descriptionsList =jp.get("builds.description");
List<Object> flatList = descriptionsList.stream().flatMap(List::stream).collect(Collectors.toList());
System.out.println(flatList.toString());
或
String[] descriptionArray = jp.get("builds.description").toString().replaceAll("\[", "").replaceAll("]", "").split(",");
List<String> descriptionList = Arrays.asList(descriptionArray);
System.out.println(descriptionList);