Jackson Project Home @github
นี่คือหน้าแรกของโครงการแจ็คสัน
มีอะไรใหม่?
- 26 ก.ย. 2024: แจ็คสัน 2.18 (.0)
- 12 มี.ค. 2024: แจ็คสัน 2.17 ปล่อยออกมา
- 19 ก.พ. 2024: การตรวจสอบความปลอดภัย Ostif/Adalogics อีกครั้ง-ใน Jackson-Dataformat-xxx's และ Jackson-Datatype-xxx's-ปล่อย: https://ostif.org/dataformatsdatatypes-audit-complete/
- 17 ธ.ค. 2023: คู่มือสไตล์การเข้ารหัส/แจ็คสัน
- 15 พ.ย. 2023: แจ็คสัน 2.16 ปล่อยออกมา
- 23 เม.ย. 2023: แจ็คสัน 2.15 ปล่อยออกมา
- 5 พ.ย. 2022: แจ็คสัน 2.14 เปิดตัว
- 2 พ.ย. 2022: Adalogics Security Audit สำหรับ Jackson ที่ออกวางจำหน่าย - ดูเอกสาร/รายงาน
- 30 ก.ย. 2021: แจ็คสัน 2.13 เปิดตัว
- 1 ต.ค. 2020: แจ็คสันเข้าร่วมใน Hacktoberfest2020 และเรามี repo ของ Jackson/Hacktoberfest ด้วย!
- 9 ต.ค. 2020: เพิ่มการสนับสนุน
(หมายเหตุ: สำหรับข้อมูลการเปิดตัวที่ทันสมัยดู Jackson Reases)
แจ็คสันคืออะไร?
แจ็คสันเป็นที่รู้จักในฐานะ "The Java Json Library" หรือ "ตัวแยกวิเคราะห์ JSON ที่ดีที่สุดสำหรับ Java" หรือเพียงแค่ "JSON สำหรับ Java"
ยิ่งไปกว่านั้นแจ็คสันเป็นชุดเครื่องมือประมวลผลข้อมูลสำหรับ Java (และแพลตฟอร์ม JVM) รวมถึงห้องสมุด JSON Parser / Generator JONSHION, การจับคู่ห้องสมุดที่จับกับข้อมูล (pojos ไปและกลับจาก JSON) และโมดูลรูปแบบข้อมูลเพิ่มเติม Yaml; และแม้แต่ชุดรูปแบบข้อมูลขนาดใหญ่เพื่อรองรับประเภทข้อมูลของประเภทข้อมูลที่ใช้กันอย่างแพร่หลายเช่น Guava, Joda, PCOLLECTIONS และอีกมากมายอีกมากมาย (ดูด้านล่าง)
ในขณะที่องค์ประกอบหลักที่แท้จริงอาศัยอยู่ภายใต้โครงการของตนเอง - รวมถึงแพ็คเกจหลักสามชุด (สตรีมมิ่ง, ดาต้าบิน, คำอธิบายประกอบ); ไลบรารีรูปแบบข้อมูล ไลบรารีประเภทข้อมูล ผู้ให้บริการ JAX-RS; และชุดเบ็ดเตล็ดของโมดูลส่วนขยายอื่น ๆ - โครงการนี้ทำหน้าที่เป็นศูนย์กลางกลางสำหรับการเชื่อมโยงชิ้นส่วนทั้งหมดเข้าด้วยกัน
เพื่อนที่ดีสำหรับผู้อ่านนี้คือคำถามที่พบบ่อยของ Jackson Project
รุ่นที่พัฒนาขึ้นอย่างแข็งขัน
Jackson Suite มีสองเวอร์ชันหลัก: 1.x เลิกใช้แล้วและไม่มีการปล่อยเวอร์ชัน 2.x เป็นเวอร์ชันที่พัฒนาขึ้นอย่างแข็งขัน ทั้งสองรุ่นหลักนี้ใช้แพ็คเกจ Java ที่แตกต่างกันและ Maven Artifact IDs ดังนั้นพวกเขาจึงไม่สามารถใช้งานร่วมกันได้ แต่สามารถอยู่ร่วมกันได้อย่างสงบสุข: โครงการสามารถขึ้นอยู่กับทั้ง Jackson 1.x และ 2.x โดยไม่มีความขัดแย้ง นี่คือการออกแบบและได้รับเลือกให้เป็นกลยุทธ์เพื่อให้การย้ายถิ่นที่ราบรื่นยิ่งขึ้นจาก 1.x ถึง 2.x
รุ่นที่มั่นคงล่าสุดจากสาขาเหล่านี้คือ:
- 2.18.1 เปิดตัวเมื่อวันที่ 28-Oct-20124
- 2.17.3 เป็นแพตช์ล่าสุดจากสาขาที่มีเสถียรภาพก่อนหน้านี้
- 1.9.13 เปิดตัว 14-2013
วิธีที่แนะนำในการใช้แจ็คสันคือผ่านที่เก็บ Maven; การเผยแพร่จะถูกสร้างขึ้นไปยังที่เก็บ Maven Central (CMR) บางครั้งหน้า Wiki ของแต่ละโครงการยังมีลิงก์ดาวน์โหลดโดยตรงชี้ไปที่ CMR
บันทึกย่อสำหรับการเปิดตัว 2.x พบได้จากหน้า Jackson Reasees
โครงการแจ็คสันที่ใช้งานอยู่
โครงการส่วนใหญ่ที่ระบุไว้ด้านล่างนี้นำโดยทีมพัฒนาแจ็คสัน; แต่บางคนโดยสมาชิกชุมชนแจ็กสันรายใหญ่คนอื่น ๆ เราพยายามที่จะทำให้โมดูลของโมดูลเข้ากันได้เพื่อลดความสับสนเกี่ยวกับเวอร์ชันใดที่ทำงานร่วมกัน
โมดูลหลัก
โมดูลหลักเป็นรากฐานที่ส่วนขยาย (โมดูล) สร้างขึ้น ปัจจุบันมี 3 โมดูลดังกล่าว (ณ Jackson 2.x):
- สตรีมมิ่ง (เอกสาร) ("แจ็คสัน-คอร์") กำหนด API สตรีมระดับต่ำและรวมถึงการใช้งานเฉพาะ JSON
- คำอธิบายประกอบ (เอกสาร) ("Jackson-Annotations") มีคำอธิบายประกอบแจ็คสันมาตรฐานมาตรฐาน
- Databind (เอกสาร) ("Jackson-Databind") ใช้การรองรับข้อมูล (และการทำให้เป็นอนุกรมวัตถุ) บนแพ็คเกจ
streaming ; ขึ้นอยู่กับทั้งแพ็คเกจ streaming และ annotations
โมดูลข้อมูลบุคคลที่สาม
ส่วนขยายเหล่า ObjectWriter คือปลั๊กอิน ObjectMapper ObjectReader สัน Module S (ลงทะเบียนกับ ObjectMapper.registerModule() ) และเพิ่มการสนับสนุนสำหรับประเภทข้อมูลของไลบรารี Java ที่ใช้กันทั่วไปโดยการเพิ่ม serializers และ deserializers เพื่อให้แพ็คเกจ databind Jackson
โมดูลข้อมูลที่ดูแลโดยตรงโดยทีมงานแจ็คสันอยู่ภายใต้ที่เก็บ GitHub ต่อไปนี้:
- โมดูลข้อมูลคอลเลกชันมาตรฐาน:
- Jackson-Datatype-Eclipse-Collections: สนับสนุนคอลเลกชัน Eclipse (ใหม่ใน Jackson 2.10!)
- Jackson-Datatype-Guava: การสนับสนุนสำหรับข้อมูลหลายประเภทของ Guava
- Jackson-Datatype-HPPC: สนับสนุนคอนเทนเนอร์ดั้งเดิมที่มีประสิทธิภาพสูง
- Jackson-Datatype-Pcollections: รองรับข้อมูลประเภท Pcollections (ตั้งแต่ Jackson 2.7)
- Hibernate: สนับสนุนคุณสมบัติไฮเบอร์เนต (Lazy-Loading, Proxies)
- โมดูล Java 8: สนับสนุนหรือ JDK 8 คุณสมบัติและข้อมูลประเภทผ่านโมดูลแยก 3 โมดูล
-
jackson-module-parameter-names : โมดูลที่เพิ่มการสนับสนุนสำหรับการใช้คุณสมบัติ JDK8 ใหม่ความสามารถในการเข้าถึงชื่อของตัวสร้างและพารามิเตอร์เมธอดเพื่ออนุญาตให้ละเว้น @JsonProperty -
jackson-datatype-jsr310 : สนับสนุน "Java 8 Dates" (เพิ่มใน JDK 8)- นอกจากนี้สำหรับผู้ใช้ pre-java8 สามารถใช้หนึ่งใน backport pre-java8 backports:
- joschi/jackson-datatype-threetenbp
- lldata/jackson-datatype-threetenbp
-
jackson-datatype-jdk8 : สนับสนุนประเภทข้อมูล JDK 8 นอกเหนือจากประเภทวันที่/เวลารวมถึง Optional
- ประเภทข้อมูล Joda:
- Jackson-Datatype-joda: การสนับสนุนประเภทของประเภทข้อมูล joda-time date/time library
- Jackson-Datatype-Joda-Money: ประเภทการสนับสนุนของประเภทข้อมูล Joda-Money (
Money , CurrencyUnit )
- JSON-P ("JSON Processing"): สองโมดูลข้อมูลสำหรับ "Old" (
javax.json ) และ "ใหม่" ( jakarta.json ):- Jackson-Datatype-Jakarta-Jsonp: สนับสนุนประเภท "ใหม่" JSON-P ใน
jakarta.json ( เพิ่มในแจ็คสัน 2.12.2 ) - Jackson-Datatype-JSR353: สนับสนุนประเภท "Old" JSON-P ใน
javax.json
- Jackson-Datatype-Json-Org: สนับสนุนประเภทห้องสมุด org.json เช่น
JSONObject , JSONArray
นอกจากนี้เราตระหนักถึงโมดูลเพิ่มเติมที่ไม่ได้รับการดูแลโดยตรงจากทีม Core Jackson:
- Jackson-Datatype-Bolts สนับสนุนประเภทการอ่าน/การเขียนที่กำหนดโดยประเภทคอลเลกชัน Yandex Bolts (การเขียนโปรแกรมที่ได้รับแรงบันดาลใจจากคอลเลกชันที่ไม่เปลี่ยนรูป)
- Jackson-Datatype-Commons-Lang3 สำหรับประเภทของ Apache Commons Lang v3
- Jackson-Datatype-Money สำหรับ "Java Money" ดู javax.money
- VAVR-JACKSON สำหรับการสนับสนุน VAVR (การเขียนโปรแกรมฟังก์ชั่นที่เต็มไปด้วยคุณลักษณะและตัวเองใน Java ™ 8 ขึ้นไป)
- Jackson-Datatype-Json-Lib สำหรับประเภทการสนับสนุนที่กำหนดโดยห้องสมุด "net.sf.json" (aka "json-lib"))
- Jackson-Datatype-Jts (JTS Geometry) สำหรับการสนับสนุนทางภูมิศาสตร์
- Jackson-Lombok เพื่อการสนับสนุนชั้นเรียนลอมบอกที่ดีขึ้น
- Jackson-Datatype-Mongo สำหรับประเภท MongoDB
- หมายเหตุ: มีทางเลือกบางอย่างในการจัดการข้อมูล MongoDB
- Jackson-Module-Objectify สำหรับประเภทข้อมูลของ Objectify
- Jackson-Datatype-Protobuf สำหรับการจัดการประเภทข้อมูลที่กำหนดโดยไลบรารี Java Protobuf มาตรฐานที่พัฒนาโดย HubSpot
- บันทึก! สิ่งนี้แตกต่างจาก
jackson-dataformat-protobuf ซึ่งเพิ่มการสนับสนุนสำหรับการเข้ารหัส/ถอดรหัสเนื้อหา protobuf แต่ไม่ได้ขึ้นอยู่กับไลบรารี Java protobuf มาตรฐานมาตรฐาน
- TinyTypes รวมถึงโมดูล Jackson (ID กลุ่ม
com.github.caligin.tinytypes , สิ่งประดิษฐ์ tinytypes-jackson ) - Jackson-Datatype-Vertx สำหรับการอ่าน/เขียน vert.x
org.vertx.java.core.json.JsonObject วัตถุ (repackaged org.json ประเภทโหนด)
ผู้ให้บริการ JAX-RS
ผู้ให้บริการ Jackson JAX-RS มีตัวจัดการเพื่อเพิ่มการสนับสนุน DataFormat สำหรับการใช้งาน JAX-RS (เช่น Jersey, Resteasy, CXF) ผู้ให้บริการใช้ MessageBodyReader และ MessageBodyWriter รูปแบบที่ได้รับการสนับสนุนในปัจจุบัน ได้แก่ JSON , Smile , XML , YAML และ CBOR
โมดูลรูปแบบข้อมูล
โมดูลรูปแบบข้อมูลให้การสนับสนุนรูปแบบข้อมูลอื่นนอกเหนือจาก JSON พวกเขาส่วนใหญ่ใช้ streaming API abstractions เพื่อให้สามารถใช้ส่วนประกอบ databinding ตาม IS; ข้อเสนอบางอย่าง (และไม่กี่ต้องการ) ฟังก์ชั่นระดับ databind เพิ่มเติมสำหรับการจัดการสิ่งต่าง ๆ เช่น schemas
ขณะนี้โมดูลรูปแบบข้อมูลสามารถใช้งานได้อย่างสมบูรณ์และรองรับ (หมายเลขเวอร์ชันในวงเล็บหากรวมเป็นเวอร์ชัน Jackson 2.x รุ่นแรกที่รวมโมดูลถ้าหายไปรวมจาก 2.0)
- AVRO: รองรับรูปแบบข้อมูล AVRO ด้วยการใช้งานการ
streaming บวกกับการสนับสนุน databind -ระดับเพิ่มเติมสำหรับ Avro Schemas - CBOR: รองรับรูปแบบข้อมูล CBOR (ตัวแปร JSON แบบไบนารี)
- CSV: รองรับรูปแบบค่าที่คั่นด้วยเครื่องหมายจุลภาค-
streaming API พร้อมการเพิ่ม databind ความสะดวกสบายเสริม - ไอออน (2.9): สนับสนุนรูปแบบข้อมูลไบนารีของ Amazon Ion (คล้ายกับ CBOR, Smile, IE Binary JSON - ชอบ)
- (Java) คุณสมบัติ (2.8): การสร้างโครงสร้างที่ซ้อนกันออกมาจากสัญกรณ์โดยนัย
- Protobuf (2.6): สนับสนุนคล้ายกับ
Avro - รอยยิ้ม: รองรับ Smile (Binary JSON) - 100% API/แบบจำลองเชิงตรรกะที่เข้ากันได้ผ่าน
streaming API ไม่มีการเปลี่ยนแปลงสำหรับ databind - TOML: (ใหม่ในปี 2.13 ที่กำลังจะมาถึง) รองรับ TomL รองรับทั้ง
streaming และการใช้งาน databind - XML: รองรับ XML; ให้ทั้งการใช้งาน
streaming และการใช้งาน databind คล้ายกับโหมด "รหัสแรก" ของ Jaxb (ไม่สนับสนุนสำหรับ "XML Schema First" แต่สามารถใช้ Jaxb Beans ได้) - Yaml: รองรับ Yaml ซึ่งคล้ายกับ JSON ได้รับการสนับสนุนอย่างเต็มที่ด้วยการใช้งาน
streaming แบบง่าย ๆ
นอกจากนี้ยังมีโมดูลรูปแบบข้อมูลอื่น ๆ ซึ่งจัดทำโดยนักพัฒนานอกทีม Jackson Core:
- Bencode: รองรับการอ่าน/เขียน bencode (รูปแบบ bittorrent) ข้อมูลที่เข้ารหัส
- BSON4JACKSON: เพิ่มการสนับสนุนสำหรับรูปแบบข้อมูล BSON (โดยโครงการ Mongo)
- นำไปใช้เป็นการใช้งานการสตรีมเต็มรูปแบบซึ่งอนุญาตให้เข้าถึงได้อย่างเต็มรูปแบบ (การสตรีมการเชื่อมโยงข้อมูลแบบจำลองต้นไม้)
- ดูห้องสมุด [Mongojack] ด้านล่าง; ในขณะที่ไม่ใช่โมดูล DataFormat แต่ก็อนุญาตให้เข้าถึงข้อมูล BSON ได้เช่นกัน
- Exificient รองรับการแลกเปลี่ยน XML ที่มีประสิทธิภาพ
- Jackson-Dataformat-Msgpack เพิ่มรูปแบบการสนับสนุน MessagePack (aka
MsgPack )- นำไปใช้เป็นการใช้งานการสตรีมเต็มรูปแบบซึ่งอนุญาตให้เข้าถึงได้อย่างเต็มรูปแบบ (การสตรีมการเชื่อมโยงข้อมูลแบบจำลองต้นไม้)
- HOCON: การใช้งานการใช้งานบางส่วนเพื่อสนับสนุนรูปแบบ hocon - ทำงานระหว่างดำเนินการ
- Rison: Jackson Backend เพื่อสนับสนุน Rison
โมดูลภาษา JVM
- Kotlin เพื่อจัดการ Kotlin ประเภทพื้นเมือง
- Scala เพื่อจัดการประเภท Scala ดั้งเดิม (รวมถึง แต่ไม่ จำกัด เฉพาะประเภทคอลเลกชัน/แผนที่ Scala, คลาสเคส)
- ปัจจุบัน (ตุลาคม 2022) Scala 2.11, 2.12, 2.13 และ 3 ได้รับการสนับสนุน (2.9 รองรับ Jackson 2.3 และ 2.10 ถึง Jackson 2.11)
สนับสนุน schemas
คำอธิบายประกอบของแจ็คสันกำหนดคุณสมบัติที่ตั้งใจไว้และการจัดการที่คาดหวังสำหรับ POJOS และนอกเหนือจากแจ็คสันเองโดยใช้สิ่งนี้สำหรับการอ่าน/การเขียน JSON และรูปแบบอื่น ๆ แล้วยังช่วยให้การสร้าง schemas ภายนอก ฟังก์ชั่นบางอย่างนี้รวมอยู่ในส่วนขยายรูปแบบข้อมูลที่กล่าวถึงข้างต้น แต่ยังมีเครื่องมือสคีมาแบบสแตนด์อโลนมากมายเช่น:
สคีมา JSON
- สร้างปลั๊กอินเครื่องมือ
- งาน ANT สำหรับการสร้างสคีมา JSON: สร้าง JSON SCHEMA จากคลาส Java ของคุณด้วย Apache Ant โดยใช้ห้องสมุดแจ็คสันและโมดูลส่วนขยาย
- เครื่องกำเนิดสคีมา JSON แบบสแตนด์อโลน
- Java Json Schema Generator (รองรับ JSON Schema Draft V7!)
- Jackson Jsonschema Generator (Scala)
- JSON Schema Generator Module: สร้าง JSON Schema โดยใช้โปรแกรมโดยใช้ Jackson Pojo Introspection รวมถึงคำอธิบายประกอบ (รองรับ JSON Schema V3 เท่านั้น !!!)
- เครื่องกำเนิดรหัสตามสคีมา JSON
- JSONSCHEMA2POJO - สร้างประเภท Java จาก JSON หรือ JSON Schema
- JSON Schema ตรวจสอบความถูกต้อง
- Java Json Schema Validator
ภาษาสคีมาอื่น ๆ
- Ember Schema Generator: สร้าง schemas สำหรับ ember.js
โมดูลอื่น ๆ เสถียร
โมดูลอื่น ๆ ที่ใช้งานได้อย่างสมบูรณ์โดยทีม FasterXML รวมถึง:
- โมดูลพื้นฐาน:
- Afterburner: เพิ่มความเร็ว Databinding 30-40% ด้วยการสร้าง bytecode เพื่อแทนที่การใช้การสะท้อนกลับสำหรับการเข้าถึงฟิลด์วิธีการ/ตัวสร้างการโทร
- GUICE: ส่วนขยายที่อนุญาตให้ค่าการฉีดจากหัวฉีด Guice (และคำอธิบายประกอบ GUICE พื้นฐาน) แทนที่จะเป็น
@JacksonInject มาตรฐาน (หรือนอกเหนือจาก) - คำอธิบายประกอบ JAXB: อนุญาตให้ใช้คำอธิบายประกอบ
JAXB เป็นทางเลือก (นอกเหนือจากหรือแทนที่จะเป็น) คำอธิบายประกอบมาตรฐานแจ็คสัน - MR Bean: "พิมพ์ aticalization"-ให้ Mr Bean สร้างคลาสการใช้งานในการบิน (ไม่มีการสร้างซอร์สโค้ด) เพื่อหลีกเลี่ยงรหัสลิง
- OSGI: อนุญาตให้ฉีดค่าจาก osgi registry ผ่านมาตรฐาน Jackson
@JacksonInject Annotation - Paranamer: ส่วนขยายเล็ก ๆ สำหรับการหาชื่อพารามิเตอร์ผู้สร้าง (ตัวสร้าง, วิธีการเป็นโรงงาน) โดยอัตโนมัติเพื่อหลีกเลี่ยงการระบุ
@JsonProperty
แจ็คสันจูเนียร์
ในขณะที่ Jackson Databind เป็นตัวเลือกที่ดีสำหรับการเชื่อมโยงข้อมูลที่มีวัตถุประสงค์ทั่วไป แต่ค่าใช้จ่ายและค่าใช้จ่ายในการเริ่มต้นอาจเป็นปัญหาในบางโดเมนเช่นโทรศัพท์มือถือ และโดยเฉพาะอย่างยิ่งสำหรับการใช้งานแสง (สองสามอ่านหรือเขียน) นอกจากนี้นักพัฒนาบางคนพบ Jackson API เต็มรูปแบบ
ด้วยเหตุผลทั้งหมดเหล่านี้เราตัดสินใจที่จะสร้างห้องสมุดขนาดเล็กที่ง่ายกว่าซึ่งรองรับชุดย่อยของฟังก์ชั่นที่เรียกว่า Jackson JR มันสร้างขึ้นบน Jackson Streaming API แต่ไม่ได้ขึ้นอยู่กับ Databind เป็นผลให้ขนาดของมัน (ทั้งขวดและการใช้หน่วยความจำรันไทม์) มีขนาดเล็กลงมาก และ API ของมันมีขนาดกะทัดรัดมาก
ห้องสมุดที่ไม่ใช่โมดูลของบุคคลที่สามขึ้นอยู่กับแจ็คสัน
Jackson Helper Libraries
- Jackson Ant Path Filter เพิ่มการกรองที่มีประสิทธิภาพของคุณสมบัติในการทำให้เป็นอนุกรมโดยใช้สัญลักษณ์เส้นทางมดสำหรับการกรองลำดับชั้น
รองรับข้อมูลประเภท
- Mongojack รองรับการจัดการที่มีประสิทธิภาพของ BSON encoded data store ใน MongoDB
สิ่งอื่น ๆ ที่เกี่ยวข้องหรือได้รับแรงบันดาลใจจากแจ็คสัน
- Jackson-JS เป็น javascript/node object serialization/deserialization library พร้อม API ที่ได้รับแรงบันดาลใจจาก Jackson
- Pyckson เป็นไลบรารี Python ที่มีเป้าหมายเช่นเดียวกับ Java Jackson เช่นการประชุมเกี่ยวกับการกำหนดค่า
- Rackson เป็นห้องสมุดทับทิมที่มีฟังก์ชันการทำงานเหมือนแจ็คสันบนแพลตฟอร์มทับทิม
การบริจาค
หากคุณต้องการช่วยโครงการแจ็คสันโปรดตรวจสอบการบริจาค
คุณอาจต้องการตรวจสอบ:
สนับสนุน
การสนับสนุนชุมชน
ส่วนประกอบของแจ็คสันได้รับการสนับสนุนโดยชุมชนแจ็คสันผ่านรายการส่งจดหมาย, ฟอรัม Gitter, ปัญหา GitHub ดูรายละเอียดทั้งหมด
การสนับสนุนระดับองค์กร
นอกเหนือจากการสนับสนุนชุมชนฟรี (สำหรับทุกคน) การสนับสนุนระดับองค์กร - เริ่มต้นด้วยเวอร์ชัน 2.10 ซึ่งเป็นส่วนหนึ่งของการสมัครสมาชิก TideLift สำหรับส่วนประกอบแจ็คสัน (ส่วนใหญ่)
ผู้ดูแลของ Jackson และแพ็คเกจอื่น ๆ อีกหลายพันชุดกำลังทำงานร่วมกับ TideLift เพื่อให้การสนับสนุนเชิงพาณิชย์และการบำรุงรักษาสำหรับการพึ่งพาโอเพ่นซอร์สที่คุณใช้เพื่อสร้างแอปพลิเคชันของคุณ ประหยัดเวลาลดความเสี่ยงและปรับปรุงสุขภาพของรหัสในขณะที่จ่ายค่ารักษาผู้ดูแลการพึ่งพาที่แน่นอนที่คุณใช้ เรียนรู้เพิ่มเติม
การรายงานช่องโหว่ด้านความปลอดภัย
กลไกที่แนะนำสำหรับการรายงานช่องโหว่ความปลอดภัยที่เป็นไปได้ดังต่อไปนี้เรียกว่า "แผนการเปิดเผยข้อมูลประสานงาน" (ดูคำจำกัดความของ DCP สำหรับแนวคิดทั่วไป) ขั้นตอนแรกคือการยื่นติดต่อ TideLift Security Contact: TideLift จะกำหนดเส้นทางรายงานทั้งหมดผ่านระบบของพวกเขาไปยังผู้ดูแลแพ็คเกจที่เกี่ยวข้องและเริ่มกระบวนการที่จะประเมินข้อกังวลและการแก้ไขปัญหาที่เป็นไปได้ส่งประกาศการอัปเดตและอื่น ๆ โปรดทราบว่าคุณไม่จำเป็นต้องเป็นสมาชิก TideLift เพื่อยื่นติดต่อผู้ติดต่อด้านความปลอดภัย
หรือคุณอาจรายงานช่องโหว่ที่อาจเกิดขึ้นกับ info ที่ที่อยู่ fasterxml dot com โปรดทราบว่าการยื่นปัญหาเพื่อไปกับรายงานนั้นใช้ได้ แต่ถ้าคุณทำเช่นนั้นโปรดไม่รวมรายละเอียดของปัญหาความปลอดภัยในปัญหา แต่เฉพาะในการติดต่อทางอีเมล นี่เป็นสิ่งสำคัญที่จะให้เวลากับเราในการให้แพตช์หากจำเป็นสำหรับปัญหา
หมายเหตุเกี่ยวกับข้อบกพร่องในการรายงาน
ต้องมีการรายงานข้อบกพร่องของแจ็คสันกับส่วนประกอบที่มีผลกระทบ: ด้วยเหตุผลนี้จึงไม่ได้เปิดใช้งานตัวติดตามปัญหาสำหรับโครงการนี้ หากคุณไม่แน่ใจว่าปัญหาโครงการใดที่มีผลกระทบใดส่วนประกอบที่เป็นไปได้มากที่สุดคือ jackson-databind ดังนั้นคุณจะใช้ Jackson Databind ปัญหาตัวติดตาม
สำหรับคำแนะนำและแนวคิดใหม่ลองใช้ความคิดในอนาคตของแจ็คสัน
เอกสาร
เว็บไซต์
- Jackson-Docs เป็นศูนย์กลางเอกสาร GitHub Jackson ของเรา
- วิกิของ repo นี้มี:
- แจ็คสันปล่อย
- คำถามที่พบบ่อย
- บล็อก
- Cowtalk (เลิกใช้แล้ว)-บล็อกที่มีเนื้อหาเฉพาะแจ็คสันจำนวนมาก ไม่ได้อัปเดตตั้งแต่ปี 2013
- CowtownCoder@Medium - บล็อกล่าสุดเกี่ยวกับ Jackson
บทเรียน
สำหรับผู้ใช้ครั้งแรกมีบทช่วยสอนการใช้งานแจ็คสันที่ดีมากมายรวมถึงการใช้งานทั่วไป / บทช่วยสอน JSON:
- การสอน Baeldung Jackson Json
- Javarevisited Jackson Json Tutorial
- Jenkov.com Jackson Tutorial
- การสอน Journaldev Jackson
- logicbig.com Jackson Tutorial
- การศึกษาของ Jackson Introduction
และแบบฝึกหัดที่เฉพาะเจาะจงมากขึ้น:
- Java67 Javakcson CSV Tutorial (CSV)
รายงาน
รายงานต่อไปนี้ได้รับการเผยแพร่เกี่ยวกับองค์ประกอบของแจ็คสัน
- Adalogics Jackson Security Audit (2022) (Jackson-Core, Jackson-Databind)
การเปรียบเทียบห้องสมุด Java JSON
เนื่องจากคุณอาจต้องการความคิดเห็นจากนักพัฒนา Java ที่ไม่เกี่ยวข้องกับ Jackson Project เกี่ยวกับห้องสมุดที่จะใช้นี่คือลิงค์ไปยังการเปรียบเทียบอิสระที่มีอยู่บางส่วน:
- ผู้ให้บริการที่มีผลผูกพันกับโอเพ่นซอร์ส 7 รายการ (เมษายน 2014)
- เป็นคนขี้เกียจ แต่เป็นนักพัฒนา Android ที่มีประสิทธิผลตอนที่ 3: JSON Parsing Library (เมษายน 2014)
- "ใครสามารถแนะนำห้องสมุด Java Json ที่ดี" (กลุ่มเชื่อมโยง) (มีนาคม 2013)
- "ห้องสมุด JSON ใดที่จะใช้กับ Android" (กันยายน 2555)