JsonDeserializer
で可能です。
あなたは
public class PersonResponseDeserializer implements JsonDeserializer<Response> {
// Create a new gson to make the default parsing for response object
private final Gson gson = new Gson();
@Override
public Response deserialize(JsonElement json, Type typeOfT
, JsonDeserializationContext context) throws JsonParseException {
Response r = gson.fromJson(json, typeOfT);
// Remove all persons from R that have last name null
r.getPeople().removeAll(
r.getPeople().stream().filter(p -> p.getLast_name() == null)
.collect(Collectors.toSet())
);
return r;
}
}
ようJsonDeserializer
が、その後
のように使用することができ作成
public class Response {
@Getter
private List<Person> people = new ArrayList<>();
}
と
public class Person {
@Getter @Setter
private String first_name, last_name;
}
のようなPOJOを持っているだろうと仮定します10
これは、解析時に実行する必要がある場合です。それ以外の場合は、構文解析後にPeople
をループし、Person
を姓を除いて除外する方がよいでしょう。
丁寧に回答しています。私はここに近づくつもりです。この時点で解析した後にデータを消去すると思います。 – airowe