The Jackson @JacksonInject คำอธิบายประกอบ สามารถใช้เพื่อใส่ค่า ลงในอ็อบเจ็กต์ที่แยกวิเคราะห์แทนที่จะอ่านค่าเหล่านั้นจาก JSON ในการใส่ค่าลงในฟิลด์ เราสามารถใช้ InjectableValues คลาสและจำเป็นต้องกำหนดค่า ObjectMapper class เพื่ออ่านค่าที่ฉีดมาจาก InjectableValues class และค่าที่เหลือจากสตริง 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'}