들어오는 JSON을 값으로 필터링하려고합니다. 이것은 jira API에서 거대한 JSON을 수신하여 생성하는 현재 JSON입니다. 응답을 처리하고 지금 필요한 필드 만 가져 오는 POJO 클래스가 몇 개 있습니다. 하지만 "To Do", "Done", "QA To Do"와 같은 소수의 문자열 만 포함하는 "fromString"및 "toString"키가 필요합니다. FilterProvider를 사용해 보았지만 값으로 필터링 한 다음 GetMapping에 추가하는 방법을 모르겠습니다.
이것은 내 컨트롤러 클래스의 현재 GetMapping으로, 응답을 생성하고 "fromString"키에 대해서만 항목 []을 필터링합니다.
@GetMapping("/")
public MappingJacksonValue run() throws Exception {
IssuesList response = rest.getForObject(
"https://.../rest/api/2/search?jql=project="+projectId+ " AND status in (done) AND issuetype in (Story)&expand=changelog",
IssuesList.class);
List<Issues> issuesData = response.getIssuesList();
MappingJacksonValue mappingJacksonValue = new MappingJacksonValue(issuesData);
FilterProvider filterProvider = new SimpleFilterProvider().addFilter("itemsEntity", SimpleBeanPropertyFilter.filterOutAllExcept("fromString"));
mappingJacksonValue.setFilters(filterProvider);
log.info(mappingJacksonValue.toString());
return mappingJacksonValue;
}
항목이있는 내 Pojo 클래스 :
@Data
@JsonFilter("itemsEntity")
@JsonIgnoreProperties(ignoreUnknown = true)
public class Items {
@JsonProperty("fromString")
private String fromString;
@JsonProperty("toString")
private String toString;
@Override
public String toString() {
return "{" +
"fromString= " + '\'' + fromString+ '\'' +
", toString= " + '\'' + toString + '\'' +
'}';
}
}
이것은 내가받은 응답에서 생성하는 현재 JSON입니다. "To Do", "Done", "Qa To Do 중 하나를 포함하지 않는 모든"fromString "및"toString "키를 건너 뛰고 싶습니다. "등. 어떻게해야합니까?
[
{
"key": "PE-1322",
"fields": {
"issuetype": {
"name": "Story"
},
"created": "2020-11-18T09:16:55.816+0000",
"customfield_10105": 3
},
"changelog": {
"histories": [
{
"created": "2020-12-17T08:57:28.800+0000",
"items": [
{
"fromString": "This issue relates to TD-353"
}
]
},
{
"created": "2020-12-17T08:57:19.233+0000",
"items": [
{
"fromString": null
}
]
}
]
}
}
]
필요에 맞는 비교기를 사용하는 고유 한 필터를 작성해야합니다.
예를 들면 :
filteredList = Arrays.stream(unfilteredList).filter(listItem -> listItem.contains("To Do")).toArray(String[]::new);
이 경우 필터는 "To Do"문자열이 포함되지 않은 모든 항목을 필터링합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다