JSON

json.tryDecode

พยายามแยกวิเคราะห์ JSON และส่งคืนข้อมูลข้อผิดพลาดที่มีโครงสร้างแทนที่จะส่งกลับ

ไวยากรณ์

json.tryDecode(json: string, options?: DecodeOptions): boolean | any | nil | string | nil | number | nil

Arguments

ชื่อชนิดคำอธิบาย
jsonstringสตริง JSON ที่จะแยกวิเคราะห์ จัดรูปแบบ ย่อขนาด หรือตรวจสอบความถูกต้อง
options?DecodeOptionsตารางการตั้งค่าเสริมที่ควบคุมลักษณะการทำงาน

Returns

ชื่อชนิดคำอธิบาย
successbooleanเป็นจริงเมื่อการดำเนินการเสร็จสมบูรณ์
decodedany | nilค่า Luau ที่ถอดรหัสหรือสตริงไบต์ที่ถอดรหัส
errorMessagestring | nilข้อความแสดงข้อผิดพลาดถูกส่งกลับเมื่อการโหลดหรือการแยกวิเคราะห์ล้มเหลว มิฉะนั้นจะเป็นศูนย์
errorPositionnumber | 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)
end

Types

DecodeOptions

ควบคุมพฤติกรรมการแยกวิเคราะห์ JSON

useNull? boolean แสดงถึง JSON null ด้วย null sentinel ของไลบรารีแทนที่จะเป็น nilmaxDepth? integer ตั้งค่าความลึกของการซ้อนสูงสุด โดยยึดไว้ตั้งแต่ 1 ถึง 4096