JSON

json.decodeSafe

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

ไวยากรณ์

json.decodeSafe(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.decodeSafe('{"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