การเขียนโปรแกรม

GSON – คู่มือฉบับย่อสำหรับผู้เริ่มต้น

30 ตุลาคม 2564

สารบัญ

GSON คืออะไร?

Gson ยังเรียกว่า Google Gson เป็นห้องสมุดที่ใช้ Java ที่มีประโยชน์สำหรับการทำให้เป็นอนุกรมและการใช้ประโยชน์จากวัตถุ Java ในแง่อื่น ๆ GSON ใช้เพื่อเปลี่ยนวัตถุ Java เป็น JSON รูปร่าง. นอกจากนี้ยังแปลงสตริง JSON เป็นวัตถุ Java ที่เกี่ยวข้อง

Gson ให้ผู้ใช้ปรับแต่งอ็อบเจ็กต์ Java และสนับสนุน Java Generics ในวงกว้าง มันใช้สองวิธีที่ตรงไปตรงมา toJson() สำหรับการแปลงวัตถุ Java เป็นสตริง JSON และ fromJson() สำหรับการแปลงสตริง JSON เป็นวัตถุ Java เป้าหมายที่สำคัญอย่างหนึ่งของ Gson คือการแปลงสิ่งเหล่านั้น Java อ็อบเจ็กต์ลงในสตริง JSON ตามลำดับ ซึ่งไม่สามารถแก้ไขได้

Gson มีซีเรียลไลเซอร์และดีซีเรียลไลเซอร์ Gson serializer ช่วยให้คุณสามารถแปลงสตริง JSON เป็นวัตถุ Java ที่เกี่ยวข้อง คุณสามารถทำให้เป็นอนุกรมของวัตถุ Java ที่คล้ายกันได้หลายรายการ ในทางกลับกัน Gson deserializer จะแปลงวัตถุ Java เป็นสตริง JSON ที่แยกจากกัน

คุณสมบัติของ Gson:

นี่คือคุณสมบัติที่พึงประสงค์ที่สุดของ Gson

  • Gson เป็นไลบรารีโอเพ่นซอร์สของ Google ซึ่งเป็นไลบรารีมาตรฐานที่สนับสนุนโดย Java generics
  • ห้องสมุด Google นี้ยังสนับสนุนวัตถุที่ซับซ้อนที่มีลำดับชั้นมรดก นอกจากนี้ยังสนับสนุนการเรียนซ้อนกัน
  • ในระหว่างการทำให้เป็นอนุกรมและดีซีเรียลไลซ์วัตถุ Java Gson จะช่วยให้ผู้ใช้สร้างซีเรียลไลเซอร์และดีซีเรียลไลเซอร์ที่ปรับแต่งได้ จะช่วยให้ผู้ใช้สามารถควบคุมกระบวนการได้ นอกจากนี้ คุณสามารถทำการดีซีเรียลไลซ์อ็อบเจ็กต์ Java ที่ไม่มีโค้ดหรือเข้าถึงได้
  • ลักษณะของ GSON อื่นคือมันสามารถปรับแต่งได้สูง ผู้ใช้สามารถตัดสินใจได้ว่าพวกเขาจำเป็นต้องพิมพ์เอาต์พุตที่ซับซ้อนหรือเอาต์พุตที่มนุษย์สามารถอ่านได้
  • Gson ต้องการหน่วยความจำน้อยกว่าและรวดเร็วและรวดเร็วมาก
  • ขึ้นอยู่กับชุดพัฒนา Java (JDK) และไม่ต้องการห้องสมุดภายนอกอื่น ๆ

จะประมวลผล JSON ได้อย่างไร

มีสามวิธีในการประมวลผล JSON ที่นำเสนอโดย Library GSON, การสตรีม API, รูปแบบต้นไม้และการผูกข้อมูล ให้เราพูดถึงการประมวลผลแบบ JSON แต่ละแบบ

สตรีมมิ่ง API

ในวิธีสตรีมมิ่ง API ของการประมวลผล JSON เนื้อหา JSON ทั้งหมดจะถูกอ่านและเขียนเป็นเหตุการณ์ที่ไม่ต่อเนื่อง ข้อมูล JSON อ่านโดยใช้ JsonReader และเขียนโดยใช้ JsonWriter JsonReader และ JsonWriter ถือว่าข้อมูล JSON เป็นโทเค็น โทเค็นนี้เรียกว่า JsonToken วิธีการสตรีมมิ่ง API สำหรับการประมวลผล JSON เป็นวิธีที่มีประสิทธิภาพและรวดเร็วที่สุดกว่าวิธีอื่นๆ มันดำเนินการอ่านและเขียนอย่างรวดเร็วและรวดเร็ว

แบบจำลองต้นไม้

วิธีการประมวลผล JSON อีกวิธีหนึ่งคือโมเดลต้นไม้ ในโมเดลต้นไม้ เนื้อหา JSON จะแสดงเป็นโครงสร้างที่เหมือนต้นไม้ โครงสร้างแบบต้นไม้ของข้อมูล JSON นี้มีโหนด JsonObjects โมเดลต้นไม้เป็นวิธีที่ยืดหยุ่นที่สุดสำหรับการประมวลผล JSON เหมือนกับของตัวแยกวิเคราะห์ DOS ของ XML

การผูกข้อมูล

วิธีการผูกข้อมูลสำหรับการประมวลผล JSON ใช้ตัวเข้าถึงคุณสมบัติ ตัวเข้าถึงคุณสมบัติแปลง JSON เป็น วัตถุ Java เก่าธรรมดา (Pojo) และในทางกลับกัน. มีอะแด็ปเตอร์ชนิดข้อมูลในวิธีการผูกข้อมูล ซึ่งดำเนินการ Jsonreads และ Jsonwrites วิธีการผูกข้อมูลนี้เหมือนกับวิธีแยกวิเคราะห์ JAXB ของ XML

การตั้งค่าด้านสิ่งแวดล้อมของ Gson

หากระบบของคุณไม่มีการตั้งค่าสภาพแวดล้อม Java ในระบบ คุณต้องตั้งค่าก่อน การตั้งค่าสภาพแวดล้อม Java บนระบบของคุณนั้นตรงไปตรงมาและสามารถจัดการได้ นี่คือคำแนะนำฉบับสมบูรณ์สำหรับคุณเกี่ยวกับการตั้งค่าสภาพแวดล้อม Java ในพื้นที่ ทำตามขั้นตอนด้านล่างตามลำดับเพื่อตั้งค่าสภาพแวดล้อม Java ในพื้นที่ให้สำเร็จ

  • ก่อนอื่น คุณต้องดาวน์โหลด JavaSE จากไฟล์ เว็บไซต์ . ตรวจสอบให้แน่ใจว่าคุณดาวน์โหลดเวอร์ชัน JavaSE ที่เข้ากันได้กับระบบปฏิบัติการของคอมพิวเตอร์ของคุณ
  • ดาวน์โหลดไฟล์ JavaSE และปฏิบัติตามคำแนะนำที่แสดงระหว่างการติดตั้ง JavaSE จะถูกติดตั้งบนระบบของคุณ
  • หลังจากนั้น คุณได้ตั้งค่าเส้นทางที่ถูกต้องของตัวแปรสภาพแวดล้อม

ขั้นตอนในการตั้งค่าพาธสำหรับ Windows 2000/XP

ย้ายไฟล์ JavaSE ที่คุณดาวน์โหลดจากเว็บไซต์ด้านบนไปยังไดเร็กทอรี C/Program Files/java/jdk ของไดรฟ์ในเครื่อง ถัดไป ดูขั้นตอนด้านล่างเพื่อตั้งค่าเส้นทางสำหรับตัวแปรสภาพแวดล้อม

  • ไปที่ 'คอมพิวเตอร์ของฉัน' และคลิกขวาที่มัน คุณจะสังเกตเห็น 'คุณสมบัติ' และคลิกที่มัน
  • ต่อมาไปที่ 'แท็บขั้นสูง' และคลิกที่ปุ่ม 'ตัวแปรสภาพแวดล้อม'
  • ตรวจสอบเส้นทาง เปลี่ยนเส้นทางไปยังไดเร็กทอรี jdk ซึ่งเราได้เก็บไฟล์ JavaSE ที่ดาวน์โหลดไว้ หากพาธปัจจุบันคือ 'C:WINDOWSSYSTEM32' ให้เปลี่ยนเป็น 'C:WINDOWSSYSTEM32;c:Program Filesjavajdkin'

ขั้นตอนการตั้งค่า Path สำหรับ Windows 95 / 98 / ME

หลังจากดาวน์โหลดไฟล์ Javase ให้ย้ายไปที่ไฟล์ C / Program / Java / JDK สำหรับการตั้งค่าเส้นทางบน Windows 95/98 / ME ให้ทำตามขั้นตอนด้านล่าง:

  • ไปที่ไฟล์ 'C:autoexec.bat' ภายหลัง เพิ่ม 'SET PATH=%PATH%;C:Program Filesjavajdkin' ที่ส่วนท้ายของ 'C:autoexec.bat'

ขั้นตอนในการตั้งค่าพาธสำหรับระบบ Linux, Solaris, FreeBSD และ UNIX

สำหรับระบบ Linux, Solaris, FreeBSD และ UNIX คุณต้องตั้งค่า PATH ในตำแหน่งที่ติดตั้งไบนารี Java ทั้งหมด ตัวอย่างเช่น ใช้ bash เชลล์ของคุณ ใช้รหัสบรรทัดต่อไปนี้เพื่อตั้งค่าเส้นทาง

'.bashrc: ส่งออก PATH=/path/to/java/java:$PATH'

จะตั้งค่า Gson Environment ได้อย่างไร?

เมื่อคุณตั้งค่าพาธ Java แล้ว ต่อไปนี้คือขั้นตอนที่เหลือสำหรับการตั้งค่าสภาพแวดล้อม JSON ของระบบ

  • ประการแรก คุณต้องดาวน์โหลดไฟล์เก็บถาวร Gson ตรวจสอบให้แน่ใจว่าคุณดาวน์โหลดไฟล์เก็บถาวร Gson เวอร์ชันล่าสุด ดาวน์โหลดไฟล์ Gson archive หรือไฟล์ jar Gson จาก gson-2.3.1.jar สำหรับระบบ Microsoft Windows, Linux และ macOS ชื่อไฟล์เก็บถาวร JSON คือ 'gson-2.3.1.jar' หลังจากดาวน์โหลดไฟล์ gson-2.3.1.jar แล้ว ให้คัดลอกไปที่โฟลเดอร์ C:>gson
ระบบปฏิบัติการ ชื่อไฟล์เก็บถาวร
Microsoft Windowsgson-2.3.1.jar
Mac OS XGSON-2.3.1.jar
ลินุกซ์gson-2.3.1.jar.
  • ขั้นตอนต่อไปคือการตั้งค่าเส้นทางสำหรับตัวแปรสภาพแวดล้อม GSON_HOME คุณต้องแก้ไขเส้นทางตัวแปรสภาพแวดล้อม GSON_HOME ไปยังสถานที่ที่ไฟล์ GSON-2.3.1.jar ของคุณอยู่บนระบบ สำหรับระบบปฏิบัติการที่แตกต่างกันเส้นทางสภาพแวดล้อมของ GSON_HOME นั้นแตกต่างกัน ตารางด้านล่างจะแนะนำคุณในการเปลี่ยนเส้นทางปัจจุบันของระบบของคุณไปยังเส้นทาง GSON
ระบบปฏิบัติการ ผลลัพธ์
Microsoft Windowsเปลี่ยนตัวแปรสิ่งแวดล้อมจาก GSON_HOME ถึง C: Gson
Mac OS Xทำตามคำสั่งด้านล่างเพื่อเปลี่ยนตัวแปรสิ่งแวดล้อมบน MacOS.ExportGson_Home = / USR / Local / GSON
ลินุกซ์ทำตามด้านล่างคำสั่งในการเปลี่ยนแปลงตัวแปรสิ่งแวดล้อมบน Linux systems.exportGSON_HOME = / Library / gson
  • หลังจากตั้งค่าเส้นทาง JSON สำหรับตัวแปรสภาพแวดล้อม GSON_HOME แล้ว คุณต้องตั้งค่า CLASSPATH ของตัวแปรสภาพแวดล้อม แก้ไขตัวแปรสภาพแวดล้อม CLASSPATH ไปยังตำแหน่งที่ไฟล์ jar Gson ของคุณตั้งอยู่
ระบบปฏิบัติการ ผลลัพธ์
Microsoft Windows% Classpath%;% GSON_HOME% GSSON-2.3.1.jar;.;
Mac OS Xส่งออก CLASSPATH = $ CLASSPATH: $ GSON_HOME / gson-2.3.1.jar :.
ลินุกซ์ส่งออก Classpath = $ Classpath: $ GSON_HOME / GSON-2.3.1.jar:.

ตัวอย่าง Gson Java

เราได้เห็นวิธีตั้งค่าสภาพแวดล้อม Java ในพื้นที่และสภาพแวดล้อม Gson บน Windows ของคุณแล้ว ลินุกซ์ และระบบปฏิบัติการ macOS เมื่อคุณตั้งค่าทุกอย่างที่จำเป็นในการรันโค้ด Gson แล้ว คุณก็พร้อมที่จะรันแอปพลิเคชันใดๆ คุณสามารถลองใช้ตัวอย่างได้ด้วยตัวเองในระบบของคุณ

สำหรับการลองใช้ตัวอย่าง Gson ด้านล่าง คุณสามารถใช้ตัวแก้ไข Java ยอดนิยมตัวใดก็ได้ เช่น แผ่นจดบันทึก , เน็ตบีนส์ , หรือ คราส . Notepad เป็นหนึ่งในโปรแกรมแก้ไขข้อความทั่วไปที่ใช้สำหรับเขียนโค้ด Java หากคุณมีระบบ Windows คุณสามารถใช้โปรแกรมแก้ไขข้อความ Notepad เพื่อเขียนโค้ด Java อีกแพลตฟอร์มคือ Netbeans มันเป็น สภาพแวดล้อมการพัฒนาแบบบูรณาการ (IDE) . คุณสามารถดาวน์โหลด Netbeans ได้บนระบบ Windows, Linux, Solaris และ macOS โปรแกรมแก้ไขข้อความอื่นสำหรับ Java คือ Eclipse เซิร์ฟเวอร์ Eclipse เป็นตัวแก้ไขข้อความสำหรับภาษาการเขียนโปรแกรมหลายภาษา คุณสามารถดาวน์โหลด Eclipse ได้บนระบบ Windows, Linux และ macOS

ก่อนที่เราจะดูตัวอย่าง Gson อย่าลืมสร้างไฟล์ Java ด้วยชื่อ 'GsonEmployee' ซึ่งเป็นชื่อคลาส Java ภายหลัง ตรวจสอบให้แน่ใจว่าไฟล์ Java 'GsonEmployee' ของคุณมีอยู่ใน C:>GSON_WORKSPACE บันทึกไฟล์ของคุณในไดเร็กทอรีนี้ด้วยนามสกุล .java

ตัวอย่าง:

|_+_|

เอาท์พุท:

ทำตามขั้นตอนที่ระบุด้านล่างเพื่อเรียกใช้โค้ด Gson ด้านบน

  1. กรอกโค้ดด้านบนโดยใช้คีย์เวิร์ด 'javac.'
|_+_|
  1. หลังจากคอมไพล์แล้ว ให้รันโค้ดโดยใช้คีย์เวิร์ด 'java'
|_+_|
  1. ผลลัพธ์ของรหัส Gson ข้างต้นจะปรากฏขึ้นหากไม่มีข้อผิดพลาดในรหัส
|_+_|

นี่คือคำแนะนำง่ายๆ สำหรับคุณเกี่ยวกับการสร้าง การทำให้เป็นอนุกรม และการทำให้วัตถุ Gson ไม่เป็นซีเรียล

  • ประการแรก คุณต้องสร้างวัตถุ Gson ที่นำกลับมาใช้ใหม่ได้โดยใช้ฟังก์ชัน GsonBuilder()
|_+_|
  • หลังจากสร้างวัตถุ Gson คุณต้องทำการดีซีเรียลไลซ์สตริง JSON เป็นวัตถุ Java เพื่อจุดประสงค์นี้ เราใช้ฟังก์ชัน fromJson() ในฟังก์ชันนี้ คุณต้องส่งพารามิเตอร์สองตัวคือ สตริง JSON และประเภทอ็อบเจ็กต์
|_+_|
  • ต่อมา คุณต้องทำให้วัตถุ Java เป็นอนุกรมกับสตริง JSON โดยใช้ฟังก์ชัน toJson() ฟังก์ชันนี้ต้องการพารามิเตอร์เพียงตัวเดียวคืออ็อบเจ็กต์
|_+_|

Gson - การทำให้เป็นอันดับวัตถุ

การทำให้เป็นอนุกรมวัตถุ Gson หมายถึงการอ่านวัตถุ Java ในเอกสาร JSON จากนั้นจึงอ่านเอกสาร JSON ในวัตถุ Java แจ้งให้เราทราบว่าการทำให้เป็นอนุกรมอ็อบเจ็กต์ Gson เกิดขึ้นได้อย่างไรด้วยตัวอย่างเดียว ให้เรายกตัวอย่างพนักงานแบบเดียวกันตามที่กล่าวไว้ข้างต้น เราแสดงรหัสพนักงาน ชื่อ อายุ และตำแหน่ง ในตัวอย่างนี้ เราจะแสดงผลเดียวกันและดูที่ Gson object serialization

ในทำนองเดียวกัน คุณต้องสร้างคลาสชื่อ GsonEmployee และวางไฟล์นี้ใน C:>GSON_WORKSPACE อย่าลืมบันทึกชื่อไฟล์ของคุณเป็น GsonEmployee.java

ตัวอย่าง

|_+_|

เอาท์พุท:

สำหรับการรันโค้ดข้างต้น คุณต้องทำตามขั้นตอนที่ระบุข้างต้น

  • สำหรับการคอมไพล์โค้ด ให้ใช้คีย์เวิร์ด 'javac'
|_+_|
  • เมื่อคอมไพล์แล้ว ให้รันโค้ดโดยใช้คีย์เวิร์ด 'java'
|_+_|
  • ผลลัพธ์ของรหัสนี้จะเหมือนกับที่แสดงด้านบน โดยแสดงชื่อ อายุ และตำแหน่งของพนักงาน
|_+_|

Gson Class

เราได้เห็นวิธีทำให้วัตถุ Gson เป็นอนุกรมแล้ว ในอีกแง่หนึ่ง เราได้อ่านวัตถุ Java ในสตริง JSON ที่เทียบเท่ากัน และสตริง JSON ลงในวัตถุ Java ที่เกี่ยวข้อง ตอนนี้เราจะย้ายไปยังคลาส Gson

Gson เป็นคลาสหลักและสำคัญของห้องสมุด Google Gson คลาส Gson มีหน้าที่แปลงวัตถุ Java เป็นสตริง JSON และสตริง JSON เป็นวัตถุ Java ตามลำดับ สำหรับคลาส Gson คุณต้องใช้ฟังก์ชัน GsonBuilder() ก่อน จากนั้นจึงใช้ฟังก์ชัน toJson() และ fromJson() เพื่ออ่านและเขียนสตริง JSON ด้านล่างนี้คือไวยากรณ์การประกาศคลาสสำหรับ com.google.gson.Gson

ไวยากรณ์:

|_+_|

Gson Builder

มีตัวสร้าง Gson ที่จะใช้ในโค้ด Java ถูกกำหนดเป็น Gson() ตัวสร้าง Gson() สร้างวัตถุ Gson เนื่องจากไม่มีพารามิเตอร์ที่ส่งผ่านไปยัง Gson() จึงต้องใช้การกำหนดค่าเริ่มต้น

Gson Class Methods

ตอนนี้เราจะย้ายไปยังวิธีการคลาส Gson ด้านล่างนี้เป็นวิธีคลาส Gson ที่มีประสิทธิภาพพร้อมคำอธิบาย

    T จากJson (JsonElement json, คลาส classOfT):

วิธีการคลาส Gson ข้างต้นใช้แผนผังการแยกวิเคราะห์เฉพาะเพื่อยกเลิกการซีเรียลไลซ์ Json ที่อ่านจากมันลงในประเภทวัตถุเฉพาะ

    T จากJson (JsonElement json ประเภท typeOfT):

เมธอดคลาส Gson นี้ใช้เพื่อจุดประสงค์เดียวกับวิธีการข้างต้น มันใช้ Json อ่านจากต้นไม้แยกวิเคราะห์เฉพาะและแปลงเป็นประเภทวัตถุที่เทียบเท่ากัน

    T จากJson (ผู้อ่าน json ประเภท typeOfT):

เมธอดคลาส Gson ด้านบนใช้ Json อ่านจากโปรแกรมอ่านเฉพาะและยกเลิกการซีเรียลไลซ์เป็นประเภทอ็อบเจกต์เฉพาะ

    T fromJson (โปรแกรมอ่าน JsonReader, ประเภท TypeOfT):

คุณสามารถใช้เมธอดคลาส Gson ด้านบนเพื่ออ่านสตริงหรือค่า JSON ถัดไปจากโปรแกรมอ่านเฉพาะ หลังจากอ่าน เมธอดนี้จะแปลงค่า JSON เป็นอ็อบเจ็กต์ typeOfT

    T fromJson(Reader json, Class OfT):

เมธอดของคลาส Gson นี้จะนำ JSON ที่อ่านจากตัวอ่านที่ระบุและยกเลิกการซีเรียลไลซ์ไปยังคลาสอ็อบเจ็กต์ที่ระบุ

    TypeAdapter getDelegateAdapter (TypeAdapterFactory skipPast ประเภท TypeToken):

เมื่อคุณต้องการอะแดปเตอร์ประเภทอื่นสำหรับประเภทใดประเภทหนึ่ง คุณสามารถใช้วิธีคลาส Gson ด้านบนได้

    TypeAdapter getAdapter (ประเภทคลาส):

เมธอดคลาส Gson นี้ใช้สำหรับรับอะแด็ปเตอร์ประเภทสำหรับประเภทเฉพาะ

    T จากJson (สตริง json, ClassOfT):

เมื่อคุณต้องการดีซีเรียลไลซ์สตริง JSON ใดๆ ลงในอ็อบเจ็กต์คลาสเฉพาะ คุณสามารถใช้เมธอดคลาส Gson ด้านบนได้

    TypeAdapter getAdapter (ประเภท TypeToken):

หากคุณต้องการรับอะแดปเตอร์ประเภทสำหรับประเภทใดประเภทหนึ่ง นี่เป็นวิธี Gson อีกวิธีหนึ่งที่ควรใช้

    T จากJson (สตริง json ประเภท typeOfT):

วิธีการคลาส Gson ด้านบนแปลงสตริง JSON เป็นวัตถุประเภทใดประเภทหนึ่ง

    เป็นโมฆะ toJson (Object src, Appendable writer):

สำหรับการทำให้เป็นอนุกรมของวัตถุ Java เฉพาะในการแสดง JSON ตามลำดับ จะใช้วิธี Gson ด้านบน

    เป็นโมฆะ toJson (JsonElement jsonElement ผู้เขียน JsonWriter):

เมธอดคลาส Gson ด้านบนใช้สำหรับเขียน JSON ถึงผู้เขียนสำหรับ jsonElement

    สตริง toJson (JsonElement jsonElement):

องค์ประกอบ JSON ถูกจัดเรียงในโครงสร้างแบบต้นไม้ เมื่อคุณต้องการแสดงองค์ประกอบ JSON ในการเป็นตัวแทนที่เทียบเท่ากัน คุณต้องใช้วิธี Gson ด้านบน

    สตริง toJson (วัตถุ src):

เมธอดข้างต้นเป็นเมธอด Gson อีกวิธีหนึ่งที่ใช้สำหรับการจัดลำดับอ็อบเจ็กต์ Java เฉพาะลงในสตริง JSON หรือการแทนค่าที่เกี่ยวข้อง

    เป็นโมฆะ toJson (JsonElement jsonElement, ผู้เขียนต่อท้าย):

สำหรับ JsonELEments ทั้งหมดในทรี เมธอดคลาส Gson ด้านบนจะเขียน JSON ที่เทียบเท่ากัน

    เป็นโมฆะ toJson (Object src, Type OfSrc, Appendable writer):

เมธอด Gson นี้ใช้สำหรับการทำให้อ็อบเจ็กต์เป็นอนุกรมในสตริง JSON ตามลำดับ นอกจากนี้ยังทำให้เป็นอนุกรมอ็อบเจ็กต์ประเภททั่วไป

    JsonElement toJsonTree (วัตถุ src):

เมธอด Gson ด้านบนแปลงอ็อบเจ็กต์ Java เฉพาะเป็นค่า JSON ตามลำดับ มันแสดงถึงค่า JSON ในแผนผัง JsonElements

    สตริง toJson (วัตถุ src, ประเภท typeOfSrc):

อีกครั้ง วิธีข้างต้นเป็นวิธีหนึ่งในคลาส Gson ซึ่งแปลงอ็อบเจ็กต์ Java เฉพาะ รวมถึงประเภททั่วไปทั้งหมด เป็นค่า JSON ตามลำดับ

    เป็นโมฆะ toJson (วัตถุ src, ประเภท typeOfSrc, ตัวเขียน JsonWriter):

เมธอด Gson นี้ใช้สำหรับเขียน src ของประเภท typeOfSrc ในการแทนค่า JSON ไปยังตัวเขียน

    JsonElement toJsonTree (วัตถุ src ประเภท typeOfSrc):

เมธอดข้างต้นแปลงอ็อบเจ็กต์ Java โดยเฉพาะ รวมถึงประเภททั่วไปทั้งหมด เป็นการแทน JSON เฉพาะ มันแสดงถึงค่า JSON ในแผนผัง JsonElements

คลาส Gson สืบทอดวิธีการข้างต้นทั้งหมดจากคลาส java.lang.Object ให้เราดูตัวอย่างที่แสดง ID พนักงาน ชื่อ อายุ และตำแหน่ง ตรวจสอบให้แน่ใจว่าคุณใช้ชื่อคลาสเหมือนกับชื่อไฟล์ของคุณ พิจารณาว่าเราเก็บไฟล์ Java ของเราไว้ที่ C:/>GSON_WORKSPACE ในตัวอย่างที่กล่าวถึงด้านล่าง ชื่อไฟล์คือ GsonEmployee2.java

ตัวอย่าง:

|_+_|

เอาท์พุท:

หลังจากเขียนโค้ด Java และบันทึกด้วยชื่อที่คล้ายกับชื่อคลาส คุณจะต้องคอมไพล์มัน ใช้คำสั่งด้านล่างเพื่อคอมไพล์

|_+_|

ไฟล์จาวา GsonEmployee2.java ได้รับการคอมไพล์แล้ว

หลังจากคอมไพล์แล้ว ให้รันโดยใช้คำสั่งด้านล่าง

|_+_|

ผลลัพธ์จะแสดงดังนี้:

|_+_|

การผูกข้อมูลใน Gson

เราได้เห็นรูปแบบการประมวลผล JSON ที่แตกต่างกันสามรูปแบบโดย Gson หนึ่งในแบบฟอร์มการประมวลผล JSON ใน Gson คือการผูกข้อมูล เมื่อใช้แบบฟอร์มการประมวลผลการผูกข้อมูล คุณสามารถแปลง JSON เป็น Java Object แบบเก่า (POJO) และ POJO เป็น JSON ได้ การแปลงระหว่าง JSON และ POJO เกิดขึ้นโดยใช้ตัวเข้าถึงคุณสมบัติหรือคำอธิบายประกอบ คำอธิบายประกอบตัวเข้าถึงคุณสมบัติมีสองประเภทที่แตกต่างกัน ได้แก่ Primitives Data Binding และ Objects Data Binding

การผูกข้อมูลเบื้องต้น: ตัวเข้าถึงคุณสมบัติหรือคำอธิบายประกอบนี้แปลง JSON เป็นวัตถุของประเภทข้อมูล Java ต่างๆ เช่น Maps, Strings, Booleans, Lists และ Null นอกจากนี้ยังแปลงประเภทข้อมูลออบเจ็กต์ที่กล่าวถึงเหล่านี้เป็น JSON

การผูกข้อมูลอ็อบเจ็กต์: การผูกข้อมูลของอ็อบเจ็กต์จะแปลงค่า JSON ใดๆ ให้เป็นประเภท JAVA และในทางกลับกัน

วิธีการผูกข้อมูลในการประมวลผล JSON นั้นคล้ายกับการแยกวิเคราะห์ JAXB ของ XML Gson สามารถอ่านและเขียนค่า JSON ในประเภทการเชื่อมโยงข้อมูล 2 ประเภทข้างต้น ให้เราศึกษารายละเอียดการผูกข้อมูลแต่ละประเภทโดยละเอียดด้านล่าง

การผูกข้อมูลเบื้องต้น

วิธีการผูกข้อมูลเบื้องต้นสำหรับการประมวลผล JSON จะแปลงค่า JSON เป็นประเภทข้อมูล Java ใดๆ ในวิธีการผูกข้อมูล Gson มีอะแดปเตอร์ในตัวหลายตัว อะแด็ปเตอร์เหล่านี้ใช้สำหรับการทำให้เป็นอนุกรมและดีซีเรียลไลซ์ชนิดข้อมูลดั้งเดิม ให้เราเข้าใจวิธีการผูกข้อมูลเบื้องต้นของ Gson สำหรับการประมวลผล JSON โดยใช้ตัวอย่างเดียว

ด้านล่างนี้คือตัวอย่างที่แสดงการแปลงระหว่างประเภทข้อมูลดั้งเดิมของ JSON และ Java คุณต้องจำไว้ว่าชื่อไฟล์ของคุณควรเหมือนกับชื่อคลาส บันทึกไฟล์ของคุณใน C:>GSON_WORKSPACE ในตัวอย่างด้านล่าง ชื่อไฟล์คือ GsonEmployee3.java

ตัวอย่าง:

|_+_|

เอาท์พุท:

ขั้นแรก คุณต้องรวบรวมโค้ดด้านบนโดยใช้คำสั่งด้านล่าง

|_+_|

หลังจากคอมไพล์แล้ว คุณต้องรันโค้ดโดยใช้คำสั่งด้านล่าง

|_+_|

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้น

|_+_|

ที่นี่ คุณสามารถสังเกตความแตกต่างระหว่างผลลัพธ์ที่สร้างขึ้นหลังจากการทำให้เป็นอนุกรมและดีซีเรียลไลซ์ได้อย่างชัดเจนโดยใช้วิธีการผูกข้อมูลเบื้องต้น

การผูกข้อมูลอ็อบเจ็กต์

ตอนนี้ เราจะย้ายไปยังแนวทาง Objects Data Binding ของ Gson สำหรับการประมวลผล JSON วิธีการนี้จะจับคู่ค่า JSON กับประเภท JAVA และอ็อบเจ็กต์ Java ใดๆ กับการแสดง JSON ที่เกี่ยวข้อง กระบวนการผูกข้อมูลอ็อบเจ็กต์อธิบายไว้ด้านล่าง:

  1. ประการแรก คุณต้องสร้างอินสแตนซ์ Gson โดยใช้เมธอด Gson()
|_+_|
  1. ตอนนี้ แปลงวัตถุ Java เป็นค่า JSON พิจารณาอ็อบเจ็กต์ Java เป็น emp สำหรับคลาส Employee
|_+_|
  1. สุดท้าย แปลงค่า JSON หรือสตริงเป็นวัตถุ Java ที่เกี่ยวข้อง พิจารณา class Employee และรับวัตถุเป็น emp1
|_+_|

โดยใช้ขั้นตอนข้างต้นนี้ เราจะดำเนินการตัวอย่างตรงไปตรงมาของวิธีการผูกข้อมูลอ็อบเจ็กต์ เราจะใช้ชื่อคลาสเป็น GsonEmployee4 ดังนั้น ควรบันทึกชื่อไฟล์เป็น GsonEmployee4.java ในตัวอย่างนี้ เราจะแสดงข้อมูลของพนักงานที่มีชื่อ รหัส ตำแหน่ง อายุ และเมือง

ตัวอย่าง:

|_+_|

เอาท์พุท:

ตอนนี้ คุณต้องรวบรวมรหัสของคุณ ทำตามคำสั่งด้านล่างสำหรับการรวบรวม

|_+_|

เรียกใช้รหัสของคุณโดยใช้คำสั่ง

|_+_|

คุณจะได้รับผลลัพธ์ต่อไปนี้:

|_+_|

ที่นี่ เราได้สังเกตแนวทาง Data Binding ของ Gson สำหรับการประมวลผล JSON พร้อมตัวอย่าง ให้เราดูวิธีการประมวลผล JSON อื่น

สตรีมมิ่ง API ใน Gson

Streaming API เป็นอีกรูปแบบหนึ่งของ Gson สำหรับการประมวลผล JSON ในแนวทางการสตรีม API ค่า JSON จะถูกอ่านและเขียนเป็นโทเค็น วิธีนี้ถือว่าแต่ละค่า JSON เป็นเหตุการณ์ที่ไม่ต่อเนื่อง ที่นี่ JsonReader อ่านข้อมูล JSON และ JsonWriter เขียนข้อมูล Json เป็นโทเค็น ดังนั้นจึงเรียกว่า JsonToken

Streaming API เป็นที่รู้จักกันดีสำหรับการตรวจสอบทุกข้อมูล JSON อย่างระมัดระวัง ในบทความนี้ เราจะเห็นการอ่านข้อมูล JSON โดยใช้วิธี Streaming API กระบวนการอ่านข้อมูล JSON เกิดขึ้นดังนี้:

  • ในขณะที่เรากำลังมุ่งเน้นไปที่การอ่านข้อมูล JSON เราจะใช้ฟังก์ชัน JsonReader() ประการแรก คุณต้องสร้างวัตถุของฟังก์ชัน JsonReader() และส่งผ่านวัตถุนี้ไปยังข้อความ JSON
|_+_|

ที่นี่ 'jsread' เป็นวัตถุของฟังก์ชัน JsonReader()

  • หลังจากสร้างวัตถุแล้ว ให้เริ่มอ่านข้อความ JSON ด้วยวัตถุนั้นและรับโทเค็น
|_+_|
  • สุดท้าย คุณต้องตรวจสอบประเภทโทเค็นที่คุณได้รับหลังจากอ่านข้อความ JSON
|_+_|

เราจะมาดูตัวอย่างหนึ่งของ JsonReader ใช้ชื่อคลาสเป็น EmployeeRead อย่าลืมบันทึกชื่อไฟล์เป็น EmployeeRead.java ใน C:

ตัวอย่าง:

|_+_|

เอาท์พุท:

ในการคอมไพล์โค้ดข้างต้น ให้พิมพ์คำสั่งดังนี้

|_+_|

หลังจากคอมไพล์แล้วให้รันโปรแกรมโดยใช้โค้ดด้านล่าง

|_+_|

ผลลัพธ์จะเป็นดังนี้:

|_+_|

นี่คือทั้งหมดที่เกี่ยวกับแนวทางสตรีมมิ่ง API สำหรับการประมวลผล JSON ตอนนี้ ให้เราไปยังรูปแบบสุดท้าย แบบจำลองต้นไม้

แบบจำลองต้นไม้ใน Gson

วิธีสุดท้ายในการประมวลผล JSON ที่ Gson นำเสนอคือ Tree Model ตามชื่อของมัน มันแสดงถึงเอกสาร JSON ในโครงสร้างที่เหมือนต้นไม้ โครงสร้างแบบต้นไม้นี้เกี่ยวข้องกับโหนด JsonObject Tree Model นั้นคล้ายกับ DOM parser ของ XML ตอนนี้เรามาดูวิธีการสร้างต้นไม้และวิธีการสำรวจต้นไม้กัน

จะสร้างต้นไม้จากเอกสาร JSON ได้อย่างไร?

สำหรับการสร้างแผนผังจากเอกสาร JSON เราจะใช้เมธอด JsonParser() เมธอด JsonParser() มีตัวชี้อยู่ด้วย ซึ่งอ่านเอกสาร JSON และชี้ไปที่รูทของทรี โดยใช้โหนดรูทเดียว เราสามารถสำรวจผ่านต้นไม้ทั้งหมดได้ นี่คือโค้ดเล็กๆ ที่จะช่วยคุณในการสร้างแผนผังจากข้อมูล JSON

ทำตามขั้นตอนด้านล่างเพื่อสร้างแผนผังจากข้อมูล JSON:

  • วิธี JsonParser() ใช้สำหรับสร้างต้นไม้ ขั้นตอนแรกคือการสร้างอินสแตนซ์หรืออ็อบเจ็กต์ของเมธอด JsonParser()
|_+_|

ที่นี่ 'jsparser' เป็นวัตถุของเมธอด JsonParser()

  • ขั้นตอนต่อไปคือการระบุสตริงหรือข้อมูล JSON ที่คุณต้องการแสดงในโครงสร้างแบบต้นไม้
|_+_|
  • ขั้นตอนสุดท้ายคือการสร้างทรีจากข้อมูลที่ระบุข้างต้น
|_+_|

วิธีการสำรวจต้นไม้?

เราได้เห็นวิธีสร้างต้นไม้จากข้อมูล JSON แล้ว ตอนนี้ เราจะสังเกตวิธีสำรวจต้นไม้ที่ออกแบบจากเอกสาร JSON สำหรับการสำรวจต้นไม้ คุณต้องเห็นทุกเส้นทางของโหนดจากโหนดนั้นไปยังโหนดรูท นี่คือรหัสเล็ก ๆ สำหรับคุณในการสำรวจต้นไม้

|_+_|

นี่เป็นตัวอย่างที่ตรงไปตรงมากว่าของการสำรวจต้นไม้ ตอนนี้ เราจะมีอินสแตนซ์เดียวของการสร้างและสำรวจต้นไม้จากข้อมูล jSON เราจะสร้างชื่อคลาสเป็น GsonTree ดังนั้น อย่าลืมบันทึกไฟล์ในชื่อ GsonTree.java ใน C:>Gson_WORKSPACE

ตัวอย่าง:

|_+_|

เอาท์พุท:

ในการคอมไพล์โปรแกรมข้างต้น ให้ใช้คำสั่งด้านล่าง

|_+_|

หลังจากคอมไพล์แล้ว คุณต้องรันโดยใช้โค้ดด้านล่าง

|_+_|

เอาต์พุตจะแสดงดังนี้:

|_+_|

เราได้เห็นแบบฟอร์มการประมวลผล JSON ทั้งสามที่ Gson นำเสนอพร้อมตัวอย่างที่เกี่ยวข้อง ให้เราดำเนินการตัวอย่างการทำให้เป็นอนุกรมและการดีซีเรียลไลเซชันใน Gson

ตัวอย่างการทำให้เป็นอนุกรมและดีซีเรียลไลเซชันใน Gson

ส่วนนี้จะให้ตัวอย่างการทำให้เป็นอนุกรมและการดีซีเรียลไลเซชันที่ง่ายและตรงไปตรงมาแก่คุณใน Gson เราจะดูตัวอย่าง Array, Collections และ Generic Types

ตัวอย่างอาร์เรย์ใน Gson

เราจะนำเสนอโค้ดขนาดเล็กที่นี่เพื่อความเข้าใจที่ดีขึ้นเกี่ยวกับการจัดลำดับอาร์เรย์และการดีซีเรียลไลซ์เซชัน

|_+_|

ตอนนี้ เราจะรันโค้ดที่สมบูรณ์ ซึ่งจะทำให้คุณเข้าใจการซีเรียลไลซ์เซชั่นและการดีซีเรียลไลซ์เซชั่นของอาร์เรย์ เราจะสร้างคลาส GsonColor ตรวจสอบให้แน่ใจว่าได้บันทึกไฟล์ Java ของคุณที่ชื่อ GsonColor.java ใน C:>GSON_WORKSPACE

ตัวอย่าง:

|_+_|

เอาท์พุท:

สำหรับการคอมไพล์โค้ดด้านบน ให้พิมพ์คำสั่งด้านล่าง

|_+_|

รันโค้ดด้านบนโดยใช้คำสั่งดังนี้

|_+_|

ผลลัพธ์จะแสดงเป็น:

|_+_|

ตัวอย่างทั่วไปใน Gson

ใน Gson มี Java การสะท้อน API API นี้มีประโยชน์ในการระบุประเภทวัตถุที่แมปสตริง JSON หรือค่า เมื่อคุณใช้ generics ใน Gson ค่า JSON ที่แสดงในประเภทอ็อบเจ็กต์ที่เกี่ยวข้องจะไม่สามารถใช้ได้ในการทำให้เป็นอันดับ ดังนั้น เพื่อแก้ปัญหานี้ในชื่อสามัญของ Gson จึงมีคลาส com.google.gson.reflect.TypeToken หน้าที่หลักของคลาสนี้คือเก็บอ็อบเจกต์ทั่วไป

เราจะมีตัวอย่างประเภทยาสามัญหนึ่งตัวอย่างด้านล่าง ให้เราสร้างคลาส GsonGenerics ตรวจสอบให้แน่ใจว่าได้บันทึกไฟล์โปรแกรม Java ใน C:>GSON_WORKSPACE ด้วยชื่อ GsonGenerics.java

ตัวอย่าง

|_+_|

เอาท์พุต

รวบรวมโค้ดด้านบนโดยใช้คำสั่ง

|_+_|

รันโค้ดโดยใช้คำสั่งด้านล่าง

|_+_|

โปรแกรมดังกล่าวข้างต้นเมื่อดำเนินการจะสร้างผลลัพธ์ต่อไปนี้

|_+_|

ตัวอย่างคอลเลกชันใน Gson

ตัวอย่างคอลเลกชันใน Gson มีเมธอด ArrayList() นี่คือรหัสล็อคเล็กๆ เพื่อให้คุณเข้าใจตัวอย่างการรวบรวมซีเรียลไลซ์เซชั่นและดีซีเรียลไลเซชันใน Gson

|_+_|

นี่คือรหัสขนาดเล็ก ตอนนี้ให้เราดูโค้ดที่ใหญ่กว่าบางบรรทัดที่แสดงถึงการทำให้เป็นอนุกรมและการดีซีเรียลไลซ์เซชันของคอลเล็กชันใน Gson สร้างคลาส GsonCollection และบันทึกไฟล์โปรแกรม Java ด้วยชื่อ GsonCollection.java บันทึกไฟล์ใน C:>GSON_WORKSPACE

ตัวอย่าง

|_+_|

เอาท์พุต

รวบรวมไฟล์โดยใช้คำสั่งด้านล่าง

|_+_|

เรียกใช้ไฟล์ด้านบนโดยพิมพ์คำสั่งต่อไปนี้บนพรอมต์คำสั่ง

|_+_|

ต่อไปนี้เป็นผลลัพธ์ของโปรแกรมรวบรวมข้างต้นใน Gson

|_+_|

บทสรุป

GSON เป็นเครื่องมือที่ช่วยให้คุณสามารถแปลงสตริง JSON หรือค่าลงในวัตถุ Java ที่เกี่ยวข้องและวัตถุ Java เป็นสตริง JSON หรือค่าที่เทียบเท่า GSON เสนอวิธีการประมวลผลที่แตกต่างกันสามแบบสำหรับ JSON

  • Data Binding แปลงค่า JSON เป็น POJO และ POJO เป็นค่า JSON ตามลำดับ
  • วิธีการสตรีมมิ่ง API ใช้ JsonReader และ JsonWriter สำหรับการอ่านและเขียนข้อมูล JSON เป็นโทเค็น
  • เมธอดโมเดลต้นไม้แสดงเอกสาร JSON ให้เป็นโครงสร้างแบบต้นไม้

เราได้เห็นวิธีตั้งค่าตัวแปรสภาพแวดล้อมสำหรับ Gson แล้ว หลังจากตั้งค่าตัวแปรสภาพแวดล้อม Gson คุณรันโค้ด Gson ต่อไป คุณสามารถดูตัวอย่างของการทำให้เป็นอนุกรมอ็อบเจ็กต์ ในการทำให้เป็นอันดับวัตถุ เอกสาร JSON จะถูกอ่านในวัตถุ Java และวัตถุ Java จะถูกอ่านลงในเอกสาร JSON ที่เกี่ยวข้อง

ต่อไป เราได้เห็นโปรแกรม Gson อย่างง่าย และวิธีคลาส Gson แล้ว แต่ละวิธีการประมวลผล JSON, Data Binding, Tree Model และ Streaming API จะได้รับการอธิบายด้วยตัวอย่างหนึ่งตัวอย่าง ต่อมา เราได้กล่าวถึงตัวอย่างการทำให้เป็นอนุกรมและการดีซีเรียลไลซ์เซชันใน Gson เราดำเนินการตัวอย่างอาร์เรย์ ตัวอย่างประเภททั่วไป และตัวอย่างคอลเลกชัน