プロパティ値の春ブーツに基づいてリストからFilterオブジェクト

user9735824:

私は戻りますRESTサービス持っているListオブジェクトのを

public class MyObject {
    private String name;
    private String state;
}

今、私は残りのコールに表示されたフィールドに基づいてリストからフィルタオブジェクトする必要があります。

http://localhost:8080/myuri?state=NY

今、私は、カスタムフィルタを開発する必要があると私は見つけたのプロパティフィルタを私が望むようなものではありません。これを達成する方法はあります。

マイケルZiober:

あなたは使用する必要はありません。Jacksonこれを行うには。ただ、使用してそれをフィルタリングしますStream APIデータは、からロードされている場合DB、フィルタは、使用してSQLWHERE句を。

例:

@GetMapping(value = "/states", produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public List<MyObject> loadStates(@RequestParam(name = "state", defaultValue = "NY", required = false) String[] states) {
    return service.loadAndFilterByState(states);
}

あなたがキャッシュされたリストを持っている場合は、以下のようにそれをフィルタリングすることができます。

@GetMapping(value = "/states", produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public List<MyObject> loadStates(@RequestParam(name = "state", defaultValue = "NY", required = false) String[] states) {
    Arrays.sort(states);
    return getStates()
            .stream()
            .filter(s -> Arrays.binarySearch(states, s.getState()) > -1)
            .collect(Collectors.toList());
}

参照してください:

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=336167&siteId=1
おすすめ