2017-04-27 7 views
0

I持ってAPIから受け取るイムこの形式のincomming JSON私は女性として性別を持つ要素をフィルタリングし、このプロパティ値に基づいてジャクソン配列要素を継承する方法はありますか?

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

{ 
"name": "A" 
"gender": "male" 
} 
] 
} 
のような形式の私のエンドポイントに応答JSONを与えたい

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

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

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

あなたはを使用して、任意の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の春のブート環境で働いています。 –

+0

Javaで使用するには、私の2番目の答えを使用する必要があります –

関連する問題