Jackson @JacksonInject एनोटेशन का उपयोग पार्स किए गए ऑब्जेक्ट में मान इंजेक्ट करने के लिए किया जा सकता है बजाय उन मानों को JSON से पढ़ने के। किसी फ़ील्ड में मान इंजेक्ट करने के लिए, हम InjectableValues क्लास का उपयोग कर सकते हैं और ObjectMapper क्लास को कॉन्फ़िगर करने की आवश्यकता है ताकि वह InjectableValues क्लास से इंजेक्ट किए गए मान और 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 injectableValues = new InjectableValues.Std().addValue(int.class, 110); Employee emp = new ObjectMapper().reader(injectableValues).forType(Employee.class).readValue(jsonString); System.out.println(emp); } } // Employee class class Employee { @JacksonInject public int empId = 0; public String empName = "Adithya"; @Override public String toString() { return "Employee{" + "empId=" + empId + ", empName='" + empName + '\'' + '}'; } } आउटपुट
Employee{empId=110, empName='Raja Ramesh'}