Maison  >  Article  >  Java  >  En Java, quel est le but de l'annotation @JacksonInject lors de l'utilisation de la bibliothèque Jackson ?

En Java, quel est le but de l'annotation @JacksonInject lors de l'utilisation de la bibliothèque Jackson ?

WBOY
WBOYavant
2023-08-19 19:09:101384parcourir

En Java, quel est le but de lannotation @JacksonInject lors de lutilisation de la bibliothèque Jackson ?

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.

Syntaxe

@Target(value={ANNOTATION_TYPE,METHOD,FIELD,PARAMETER})
@Retention(value=RUNTIME)
public @interface JacksonInject

Exemple

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=&#39;" + empName + &#39;\&#39;&#39; +
      &#39;}&#39;;
   }
}

Sortie

Employee{empId=110, empName=&#39;Raja Ramesh&#39;}

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer