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 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'}