Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

เมื่อใดควรใช้คำอธิบายประกอบ @JsonAutoDetect ใน Java


คำอธิบายประกอบ @JsonAutoDetect สามารถใช้ที่ระดับชั้นเรียนเพื่อแทนที่การมองเห็น ของคุณสมบัติของคลาสระหว่าง การทำให้เป็นอนุกรม และ ดีซีเรียลไลเซชัน . เราสามารถตั้งค่าการมองเห็นด้วยคุณสมบัติเช่น "creatorVisibility , "การมองเห็นฟิลด์ "," การมองเห็นได้ชัดเจน "," setterVisibility " และ "isGetterVisibility " JsonAutoDetect คลาสสามารถกำหนด ค่าคงที่คงที่สาธารณะ ที่คล้ายกับ คลาส Java ระดับการมองเห็น เช่น "ANY", "DEFAULT", "NON_PRIVATE", "NONE", "PROTECTED_AND_PRIVATE" และ "PUBLIC_ONLY ".

ตัวอย่าง

<ก่อน>นำเข้า com.fasterxml.jackson.annotation.*;import com.fasterxml.jackson.databind.*;import java.io.*;คลาสสาธารณะ JsonAutoDetectTest { public static void main (String [] args) พ่น IOException { Address ที่อยู่ =ที่อยู่ใหม่ ("Madhapur", "Hyderabad", "Telangana"); ชื่อชื่อ =ชื่อใหม่ ("ราชา", "ราเมซ"); นักศึกษา นักศึกษา =นักศึกษาใหม่(ที่อยู่, ชื่อ, จริง); ตัวทำแผนที่ ObjectMapper =ใหม่ ObjectMapper (); สตริง jsonString =mapper.writerWithDefaultPrettyPrinter ().writeValueAsString (นักเรียน); System.out.println("JSON:" + jsonString); }} // ที่อยู่ classclass ที่อยู่ { สตริงส่วนตัว firstLine; สตริงส่วนตัว SecondLine; สตริงส่วนตัว ThirdLine; ที่อยู่สาธารณะ (String firstLine, String secondLine, String thirdLine) { this.firstLine =firstLine; this.secondLine =วินาทีบรรทัด; this.thirdLine =thirdLine; } สตริงสาธารณะ getFirstLine () { กลับบรรทัดแรก; } สตริงสาธารณะ getSecondLine () { ส่งคืนบรรทัดที่สอง; } สตริงสาธารณะ getThirdLine () { ส่งคืนสายที่สาม; }} // ชื่อ classclass Name { private String firstName; สตริงส่วนตัว SecondName; ชื่อสาธารณะ (String firstName, String secondName) { this.firstName =firstName; this.secondName =SecondName; } สตริงสาธารณะ getFirstName () { ส่งคืนชื่อ; } สตริงสาธารณะ getSecondName () { ส่งคืนชื่อที่สอง; }}// Student class@JsonAutoDetect(fieldVisibility =JsonAutoDetect.Visibility.ANY) class Student { ที่อยู่ส่วนตัว; ชื่อส่วนตัว ชื่อ; บูลีนส่วนตัว isActive; นักเรียนสาธารณะ (ที่อยู่, ชื่อ, บูลีน isActive) { this.address =ที่อยู่; this.name =ชื่อ; this.isActive =isActive; }}

ผลลัพธ์

{ "ที่อยู่" :{ "firstLine" :"Madhapur", "secondLine" :"Hyderabad", "thirdLine" :"Telangana" }, "name" :{ "firstName" :"Raja", "secondName" :"Ramesh" }, "isActive" :true}