@JsonProperty एनोटेशन का उपयोग JSON में संपत्ति नाम को इंगित करने के लिए किया जा सकता है। इस एनोटेशन का उपयोग कंस्ट्रक्टर या फ़ैक्टरी विधि के लिए किया जा सकता है। @JsonCreator एनोटेशन उन स्थितियों में उपयोगी है जहां @JsonSetter एनोटेशन का उपयोग नहीं किया जा सकता। उदाहरण के लिए, अपरिवर्तनीय ऑब्जेक्ट्स में कोई सेटर विधि नहीं होती है, इसलिए उन्हें कंस्ट्रक्टर में अपने प्रारंभिक मान इंजेक्ट करने की आवश्यकता होती है।
@JsonProperty - कंस्ट्रक्टर
उदाहरण
import com.fasterxml.jackson.annotation.*; import java.io.IOException; import com.fasterxml.jackson.databind.*; public class JsonCreatorTest1 { public static void main(String[] args) throws IOException { ObjectMapper om = new ObjectMapper(); String jsonString = "{\"id\":\"101\", \"fullname\":\"Ravi Chandra\", \"location\":\"Pune\"}"; System.out.println("JSON: " + jsonString); Customer customer = om.readValue(jsonString, Customer.class); System.out.println(customer); } } // Customer class class Customer { private String id; private String name; private String address; public Customer() {} @JsonCreator public Customer( @JsonProperty("id") String id, @JsonProperty("fullname") String name, @JsonProperty("location") String address) { this.id = id; this.name = name; this.address = address; } @Override public String toString() { return "Customer [id=" + id + ", name=" + name + ", address=" + address + "]"; } } आउटपुट
JSON: {"id":"101", "fullname":"Ravi Chandra", "location":"Pune"} Customer [id=101, name=Ravi Chandra, address=Pune] @JsonCreator - फ़ैक्टरी विधि
उदाहरण
import com.fasterxml.jackson.annotation.*; import java.io.IOException; import com.fasterxml.jackson.databind.*; public class JsonCreatorTest2 { public static void main(String[] args) throws IOException { ObjectMapper mapper = new ObjectMapper(); String jsonString = "{\"id\":\"102\", \"fullname\":\"Raja Ramesh\", \"location\":\"Hyderabad\"}"; System.out.println("JSON: " + jsonString); Customer customer = mapper.readValue(jsonString, Customer.class); System.out.println(customer); } } // Customer class class Customer { private String id; private String name; private String address; public Customer() {} @JsonCreator public static Customer createCustomer( @JsonProperty("id") String id, @JsonProperty("fullname") String name, @JsonProperty("location") String address) { Customer customer = new Customer(); customer.id = id; customer.name = name; customer.address = address; return customer; } @Override public String toString() { return "Customer [id=" + id + ", name=" + name + ", address=" + address + "]"; } } आउटपुट
JSON: {"id":"101", "fullname":"Raja Ramesh", "location":"Hyderabad"} Customer [id=102, name=Raja Ramesh, address=Hyderabad]