Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

Java में @JsonAutoDetect एनोटेशन का उपयोग कब करें?


@JsonAutoDetect एनोटेशन का उपयोग क्लास स्तर पर क्लास के गुणों की दृश्यता को सीरियलाइज़ेशन और डिसीरियलाइज़ेशन के दौरान ओवरराइड करने के लिए किया जा सकता है। हम "creatorVisibility", "fieldVisibility", "getterVisibility", "setterVisibility" और "isGetterVisibility" जैसे गुणों के साथ दृश्यता सेट कर सकते हैं। JsonAutoDetect क्लास पब्लिक स्टैटिक कॉन्स्टेंट्स परिभाषित कर सकती है जो जावा क्लास दृश्यता स्तरों के समान हैं जैसे "ANY", "DEFAULT", "NON_PRIVATE", "NONE", "PROTECTED_AND_PRIVATE" और "PUBLIC_ONLY"।

उदाहरण

import com.fasterxml.jackson.annotation.*; import com.fasterxml.jackson.databind.*; import java.io.*; public class JsonAutoDetectTest { public static void main(String[] args) throws IOException { Address address = new Address("Madhapur", "Hyderabad", "Telangana"); Name name = new Name("Raja", "Ramesh"); Student student = new Student(address, name, true); ObjectMapper mapper = new ObjectMapper(); String jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(student); System.out.println("JSON: " + jsonString); } } // Address class class Address { private String firstLine; private String secondLine; private String thirdLine; public Address(String firstLine, String secondLine, String thirdLine) { this.firstLine = firstLine; this.secondLine = secondLine; this.thirdLine = thirdLine; } public String getFirstLine() { return firstLine; } public String getSecondLine() { return secondLine; } public String getThirdLine() { return thirdLine; } } // Name class class Name { private String firstName; private String secondName; public Name(String firstName, String secondName) { this.firstName = firstName; this.secondName = secondName; } public String getFirstName() { return firstName; } public String getSecondName() { return secondName; } } // Student class @JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY) class Student { private Address address; private Name name; private Boolean isActive; public Student(Address address, Name name, Boolean isActive) { this.address = address; this.name = name; this.isActive = isActive; } }

आउटपुट

{ "address" : { "firstLine" : "Madhapur", "secondLine" : "Hyderabad", "thirdLine" : "Telangana" }, "name" : { "firstName" : "Raja", "secondName" : "Ramesh" }, "isActive" : true }

  1. Java में pack() मेथड का उपयोग कब कर सकते हैं? Java में pack() मेथड का उपयोग कब कर सकते हैं?

    pack() मेथड Java में Window क्लास में परिभाषित है और यह फ्रेम को इस तरह आकार देता है कि इसकी सभी सामग्री उनके पसंदीदा आकार पर या उससे ऊपर हैं। pack() मेथड का एक विकल्प setSize() या setBounds() मेथड्स को कॉल करके फ्रेम आकार को स्पष्ट रूप से स्थापित करना है। सामान्य तौर पर, pack() मेथड का उपयोग setSiz

  1. - Java में String के बजाय StringBuffer क्यों उपयोग करना चाहिए?

    StringBuffer एक थ्रेड-सेफ, म्यूटेबल कैरेक्टर सीक्वेंस है। String क्लास (इम्यूटेबल) के विपरीत, StringBuffer क्लास म्यूटेबल है। यानी हम StringBuffer ऑब्जेक्ट की सामग्री को बदल सकते हैं। जब हम StringBuffer क्लास के स्ट्रिंग को संशोधित करते हैं, तो हम नया String ऑब्जेक्ट नहीं बना रहे होते, बल्कि मूल स

  1. - Python में %r के बजाय %s कब उपयोग करें?

    %s vs %r: String Formatting में Difference %s Specifier Object को str() का उपयोग करके Convert करता है, और %r इसे repr() का उपयोग करके Convert करता है। कुछ Objects जैसे Integers के लिए, वे Same Result देते हैं, लेकिन repr() इसमें Special है कि (उन Types के लिए जहां यह संभव है) यह Conventionally ऐसा