L'annotation @JacksonInject de Jackson peut être utilisée pour injecter valeurs dans l'objet analysé au lieu de lire ces valeurs à partir de JSON. Afin d'injecter des valeurs dans les champs, nous pouvons utiliser la classe InjectableValues et devons configurer la classe ObjectMapper pour lire les valeurs injectées de la classe InjectableValues et lire les valeurs restantes de la chaîne JSON.
@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'}
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!