Die Annotation
@JsonFilter wird verwendet, um benutzerdefinierte Filter zum Serialisieren von Java-Objekten zu definieren. Wir müssen die Klasse FilterProvider verwenden, um den Filter zu definieren und die tatsächliche Filterinstanz abzurufen. Konfigurieren Sie nun den Filter, indem Sie den FilterProvider der Klasse ObjectMapper zuweisen.
@Target(value={ANNOTATION_TYPE,TYPE,METHOD,FIELD,PARAMETER}) @Retention(value=RUNTIME) public @interface JsonFilter
Im folgenden Beispiel kann customFilter als Parameter der Annotation @JsonFilter deklariert werden, die nur den Namen extrahiert und andere Attribute der Bean herausfiltert.
import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ser.FilterProvider; import com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter; import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider; public class JsonFilterAnnotationTest { public static void main(String args[]) throws JsonProcessingException { ObjectMapper mapper = new ObjectMapper(); FilterProvider filterProvider = new SimpleFilterProvider().addFilter("customFilter", SimpleBeanPropertyFilter.filterOutAllExcept("empName")); String jsonString = mapper.writer(filterProvider).writeValueAsString(new FilterBean()); System.out.println(jsonString); } } @JsonFilter("customFilter")<strong> </strong>class FilterBean { public int empId = 110; public String empName = "Raja Ramesh"; public String gender = "male"; }
{"empName":"Raja Ramesh"}
Das obige ist der detaillierte Inhalt vonWelche Bedeutung hat die Annotation @JsonFilter in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!