ไวยากรณ์
json.tryDecode(json: string, options?: DecodeOptions): boolean | any | nil | string | nil | number | nilArguments
| ชื่อ | ชนิด | คำอธิบาย |
|---|---|---|
json | string | สตริง JSON ที่จะแยกวิเคราะห์ จัดรูปแบบ ย่อขนาด หรือตรวจสอบความถูกต้อง |
options? | DecodeOptions | ตารางการตั้งค่าเสริมที่ควบคุมลักษณะการทำงาน |
Returns
| ชื่อ | ชนิด | คำอธิบาย |
|---|---|---|
success | boolean | เป็นจริงเมื่อการดำเนินการเสร็จสมบูรณ์ |
decoded | any | nil | ค่า Luau ที่ถอดรหัสหรือสตริงไบต์ที่ถอดรหัส |
errorMessage | string | nil | ข้อความแสดงข้อผิดพลาดถูกส่งกลับเมื่อการโหลดหรือการแยกวิเคราะห์ล้มเหลว มิฉะนั้นจะเป็นศูนย์ |
errorPosition | number | nil | ตำแหน่งที่การแยกวิเคราะห์ล้มเหลว หรือไม่มีเมื่อไม่มีข้อผิดพลาดในการแยกวิเคราะห์เกิดขึ้น |
คำอธิบาย
พยายามแยกวิเคราะห์ JSON และส่งคืนข้อมูลข้อผิดพลาดที่มีโครงสร้างแทนที่จะส่งกลับ
เรียกด้วย parameter 2 ค่า: json, options ตาราง arguments อธิบายค่าที่จำเป็นและค่าที่ปรับพฤติกรรม
ส่งคืน success (boolean), decoded (any | nil), errorMessage (string | nil), errorPosition (number | nil) ใช้ตาราง returns เพื่อแยกค่าที่สำเร็จ ผลลัพธ์ nil และ error ที่จัดการต่อได้
ตัวอย่าง
พยายามถอดรหัส JSON โดยไม่ส่งอินพุตที่มีรูปแบบไม่ถูกต้อง
local ok, value, message, position = json.tryDecode('{"ready":true}')
if ok then
print(value.ready)
else
warn(message, position)
endTypes
DecodeOptions
ควบคุมพฤติกรรมการแยกวิเคราะห์ JSON
useNull? boolean แสดงถึง JSON null ด้วย null sentinel ของไลบรารีแทนที่จะเป็น nilmaxDepth? integer ตั้งค่าความลึกของการซ้อนสูงสุด โดยยึดไว้ตั้งแต่ 1 ถึง 4096