objeto de filtro de la lista basada en valor de la propiedad de arranque de primavera

user9735824:

Tengo un servicio que devolverá resto Listde los objetos

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

Ahora, necesito objeto de filtro de la lista basada en campos provistos de guardia resto:

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

Ahora, necesito desarrollar filtros personalizados y yo sólo encuentro filtro de propiedades no es algo que quiero. Hay una manera de lograr esto.

Michael Ziober:

No es necesario utilizar Jacksonpara hacer esto. Sólo filtrarla usando Stream API. Si los datos, se cargan desde DB, filtro usando SQL's WHEREcláusula.

Ejemplo:

@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);
}

Si usted tiene una lista en caché, puede filtrarlo, como a continuación:

@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());
}

Ver también:

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=336172&siteId=1
Recomendado
Clasificación