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

JSON Schema รองรับการใช้ Jackson ใน Java หรือไม่


JSON Schema เป็นข้อกำหนดสำหรับรูปแบบตาม JSON สำหรับการกำหนดโครงสร้างของข้อมูล JSON JsonSchema คลาสสามารถให้สัญญาสำหรับข้อมูล JSON ที่จำเป็นสำหรับแอปพลิเคชันที่กำหนดและวิธีโต้ตอบกับมัน JsonSchema สามารถกำหนด การตรวจสอบ เอกสาร การนำทางไฮเปอร์ลิงก์ และ การควบคุมการโต้ตอบ ของข้อมูล JSON เราสามารถสร้างสคีมา JSON โดยใช้ generateSchema() วิธีการของ JsonSchemaGenerator คลาสนี้ล้อมฟังก์ชันการสร้างสคีมา JSON

ไวยากรณ์

JsonSchema สาธารณะ generateSchema (ประเภท ) พ่น com.fasterxml.jackson.databind.JsonMappingException

ตัวอย่าง

<ก่อนหน้า>นำเข้า com.fasterxml.jackson.core.JsonProcessingException;นำเข้า com.fasterxml.jackson.databind.ObjectMapper;นำเข้า com.fasterxml.jackson.module.jsonSchema.JsonSchema;import com.fasterxml.jackson.module.jsonSchema.Generator นำเข้า java.util.List; JSONSchemaTest คลาสสาธารณะ { โมฆะสาธารณะหลัก (สตริง [] args) พ่น JsonProcessingException { ObjectMapper jacksonObjectMapper =ObjectMapper ใหม่ (); JsonSchemaGenerator schemaGen =JsonSchemaGenerator ใหม่ (jacksonObjectMapper); สคีมา JsonSchema =schemaGen.generateSchema (Person.class); สตริง schemaString =jacksonObjectMapper.writerWithDefaultPrettyPrinter ().writeValueAsString (สคีมา); System.out.println(schemaString); }} // คลาสบุคคล บุคคล { ชื่อสตริงส่วนตัว; อายุ int ส่วนตัว; รายการส่วนตัว หลักสูตร; ที่อยู่ส่วนตัว; สตริงสาธารณะ getName () { ชื่อส่งคืน; } สาธารณะ int getAge(){ อายุกลับ; } รายการสาธารณะ getCourse() { กลับหลักสูตร; } ที่อยู่สาธารณะ getAddress() { ที่อยู่ผู้ส่ง; }} // ที่อยู่ classclass ที่อยู่ { สตริงส่วนตัว firstLine; สตริงส่วนตัว SecondLine; สตริงส่วนตัว ThirdLine; สตริงสาธารณะ getFirstLine () { ส่งคืนบรรทัดแรก; } สตริงสาธารณะ getSecondLine () { ส่งคืนบรรทัดที่สอง; } สตริงสาธารณะ getThirdLine () { ส่งคืนสายที่สาม; }}

ผลลัพธ์

{ "type" :"object", "id" :"urn:jsonschema:Person", "properties" :{ "name" :{ "type" :"string" }, "age" :{ "type" " :"integer" } "address" :{ "type" :"object", "id" :"urn:jsonschema:Address", "properties" :{ "firstLine" :{ "type" :"string" } , "secondLine" :{ "type" :"string" }, "thirdLine" :{ "type" :"string" } } } "course" :{ "type" :"array", "items" :{ " type" :"string" } } }}