Jacksons @JacksonInject-Annotation kann verwendet werden , um Werte in das analysierte Objekt einzufügen, anstatt diese Werte aus JSON zu lesen. Um Werte in Felder einzufügen, können wir die Klasse InjectableValues verwenden und müssen die Klasse ObjectMapper so konfigurieren, dass sie die eingefügten Werte aus der Klasse InjectableValues liest und die restlichen Werte daraus liest die JSON-Zeichenfolge.
@Target(value={ANNOTATION_TYPE,METHOD,FIELD,PARAMETER}) @Retention(value=RUNTIME) public @interface JacksonInject
import com.fasterxml.jackson.annotation.*; import com.fasterxml.jackson.databind.*; import java.io.*; public class JacksonInjectTest { public static void main(String args[]) throws IOException { String jsonString = "{\"empName\": \"Raja Ramesh\"}"; InjectableValues<strong> </strong>injectableValues = new InjectableValues.Std().addValue(int.class, 110); Employee emp = new ObjectMapper().reader(injectableValues).forType(Employee.class).readValue<strong>(</strong>jsonString); System.out.println(emp); } } // Employee class class Employee { <strong> </strong>@JacksonInject<strong> </strong> public int empId = 0; public String empName = "Adithya"; <strong> </strong>@Override public String toString() { return "Employee{" + "empId=" + empId + ", empName='" + empName + '\'' + '}'; } }
Employee{empId=110, empName='Raja Ramesh'}
Das obige ist der detaillierte Inhalt vonWelchen Zweck hat die Annotation @JacksonInject in Java bei Verwendung der Jackson-Bibliothek?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!