2017-04-27 2 views
0

나는이 API에서 수신 메신저 형식의 incomming JSON A I가 여성과 같은 성을 가진 요소를 필터링하고이속성 값을 기준으로 잭슨 배열 요소를 제거하는 방법은 무엇입니까?

{ 
    person:[ 
{ 
"name": "A" 
"gender": "male" 
}, 

{ 
"name": "A" 
"gender": "male" 
} 
] 
} 
같은 형식의 내 엔드 포인트에 응답 JSON을주고 싶어

{ 
    person:[ 
{ 
"name": "A" 
"gender": "male" 
}, 

{ 
"name": "A" 
"gender": "female" 
}, 

{ 
"name": "A" 
"gender": "male" 
} 
] 
} 

당신은,311를 사용하는 JSON을 필터링 할 수 있습니다

@JsonAutoDetect 
@JsonIgnoreProperties(ignoreUnknown = true) 
public class Person{ 

private String name; 

private String gender; 

//getter setters 
} 

@JsonAutoDetect 
@JsonIgnoreProperties(ignoreUnknown = true) 
public class JsonResponseModel{ 
    private List<Person> person; 

    //getter setter 

} 
+0

가능한 복제본 : http://stackoverflow.com/questions/22609079/how-to-filter-the-json-response-returning-from-spring-rest-web-service – Sarief

+0

나는 그렇게 생각하지 않는다 ... .json 속성을 숨기고 싶지 않습니다. 대신 속성 값이 "female"인 경우 전체 요소를 무시하고 싶습니다. –

+0

여성 요소를 필터링하여 여성용 요소를 필터링해야합니다. 즉, 여성용 JsonResponseModel을 필터링해야합니다. 내가 잘못 본 것이 아니라면, 그 질문의 응답은 정확하게 이것을 제공합니다. 또는 jsonResponse를 보내기 전에 수동으로 필터링 할 수 있습니다. – Sarief

답변

0

잭슨 주석을 사용하여 매핑/직렬화하는 동안이 작업을 수행하는 방법은 무엇입니까 json에서 여성 사람 데이터 만 가져 오기위한이 링크를 사용하십시오 jsonPath checking.

이 json 경로를 사용하여 모든 여성 담당자를 확보하십시오.

$.person.[?(@.gender=='female')] 

json fomatter을 사용하여 json의 형식을 지정하십시오.

첫 번째 링크에 json과 jsonpath를 입력하면 필터링 된 json이 여성 성별 데이터를 보여줍니다.

+0

은 jquery 솔루션처럼 보입니다 ... 저는 Java Spring 부트 환경에서 작업하고 있습니다. –

+0

자바에서 사용하려면 내 두 번째 대답을 사용해야합니다. –