Java, Php และภาษาอื่นๆ มีเฟรมเวิร์กที่สมบูรณ์สำหรับการแยกวิเคราะห์ข้อมูล Json ซึ่งช่วยให้เราใช้โค้ดเพียงเล็กน้อยในการแปลงข้อมูล json ที่จัดรูปแบบเป็นอ็อบเจ็กต์หรือคุณลักษณะที่โปรแกรมสามารถรับรู้ได้ ในเวลาเดียวกันก็มีเช่นกัน ส่วนประกอบใน Delphi ใช้ฟังก์ชันนี้ เช่น IsuperObject หากคุณยังไม่มีส่วนประกอบนี้ โปรดค้นหาและดาวน์โหลดทางออนไลน์หรือฝากอีเมลของคุณไว้ในกล่องข้อความด้านล่างเพื่อขอจากฉัน
ก่อนอื่นมาพูดถึงฟังก์ชันที่ใช้กันทั่วไปใน ISuperObject กันก่อน
ฟังก์ชัน SO(const s: SOString = '{}'): ISuperObject; ฟังก์ชันนี้ส่งผ่านในสตริงข้อมูล json และส่งคืนอ็อบเจ็กต์ ISuperObject โดยทั่วไปจะเป็นฟังก์ชันแรกที่เราใช้เมื่อแยกวิเคราะห์ json เช่น jObj: =SO (jsonstr).
คุณสมบัติ O[const path: SOString]: ISuperObject อ่าน GetO เขียน PutO; ตัวอย่างเช่น: jobj.O['username'] ฟังก์ชันนี้ถูกเรียกโดยอ็อบเจ็กต์ ISuperObject สตริงในวงเล็บเหลี่ยมคือชื่อฟิลด์ใน json ส่งคืนวัตถุ ISuperObject
คุณสมบัติ S[const path: SOString]: SOString อ่าน GetS write PutS; ฟังก์ชันนี้ถูกเรียกโดยอ็อบเจ็กต์ ISuperObject แตกต่างจาก O['ชื่อผู้ใช้'] โดยจะส่งกลับ SoString นั่นคือสตริง ใช้เมธอด str: = jObj.S['ชื่อผู้ใช้']; ในทำนองเดียวกัน มีฟังก์ชันอื่นๆ ที่คล้ายกันอีกมากมาย เช่น I['age'] ส่งคืนจำนวนเต็ม B['isenable'] ส่งคืนประเภทบูลีน และ A['users'] ส่งคืนอาร์เรย์ TSuperArray
ฟังก์ชัน AsString, AsBoolean, AsInteger, AsArray, ISuperObject ใช้ในการแปลง ISuperObject ให้เป็นชนิดข้อมูลที่สอดคล้องกัน
ลองดูโค้ดสาธิตด้านล่างนี้ ข้อมูล json มีดังนี้
{ "retcode": "1", "datafrom": "server", "users": "[{/"id/":1, /"ชื่อผู้ใช้/": /"liuderu/", /"เว็บไซต์/": /"bcoder.com/"},{/"id/":2, /"ชื่อผู้ใช้/": /"Jeoe/", /"เว็บไซต์/": /"baidu.com/"}]"}Delphi เวอร์ชัน 2010 มีโค้ดดังนี้:
หน่วย uFmMain; อินเทอร์เฟซ Windows, ข้อความ, SysUtils, ตัวแปร, คลาส, กราฟิก, การควบคุม, แบบฟอร์ม, กล่องโต้ตอบ, StdCtrls, ComCtrls, ปุ่ม, superobject; พิมพ์ TFmMain = class (TForm) Memo1: ListView1: TListView; BitBtn1: Label1 : ขั้นตอน TLabel; BitBtn1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var FmMain: TFmMain;implementation{$R *.dfm}procedure TFmMain.BitBtn1Click(Sender: TObject);var jRet, jUsers: ISuperObject; : TSuperArray; retCode: จำนวนเต็ม; strUsers: string; i: integer;begin jRet := SO(Memo1.Text); if (jRet.O['retcode'] <> nil) ให้เริ่ม retCode := jRet.O['retcode'].AsInteger; .Caption := 'ค่าส่งคืน:' + IntToStr(retCode) + '; jRet.O['datafrom'].AsString; if(jRet.O['retcode'].AsInteger = 1) ให้เริ่ม strUsers := jRet.O['users'].AsString; aryUsers := jUsers.AsArray; สำหรับ I := 0 ถึง aryUsers.Length - 1 เริ่มต้นด้วย ListView1.Items.Add ทำคำบรรยายเริ่มต้น := aryUsers[i].O['id'].AsString; SubItems.Add(aryUsers[i].O['username'].AsString); SubItems.Add(aryUsers[i ].O['เว็บไซต์'].AsString); end; end; end;end;end.ตัวอย่างง่ายๆ ของ Delphi โดยใช้ ISuperObject เพื่อแยกวิเคราะห์ json: Delphi_Json_jb51.rar