json ของโมดูลคือโมดูล Starlark ของฟังก์ชันที่เกี่ยวข้องกับ JSON
สมาชิก
ถอดรหัส
unknown json.decode(x)
ฟังก์ชันถอดรหัสจะยอมรับพารามิเตอร์ตำแหน่ง 1 รายการซึ่งเป็นสตริง JSON
และแสดงผลค่า Starlark ที่สตริงหมายถึง
- "null", "true" และ "false" จะแยกวิเคราะห์เป็น "ไม่มี", "จริง" และ "เท็จ"
- ตัวเลขจะถูกแยกวิเคราะห์เป็น int หรือเป็นแบบลอยหากมีจุดทศนิยมหรือเลขชี้กำลัง แม้ว่า JSON จะไม่มีไวยากรณ์สำหรับค่าที่ไม่จำกัด แต่ค่าที่มีขนาดใหญ่มากอาจถูกถอดรหัสเป็นแบบไม่รู้จบ
- ออบเจ็กต์ JSON ได้รับการแยกวิเคราะห์เป็นดิคเตอร์ Starlark ใหม่ที่ไม่ได้ตรึงไว้ หากสตริงคีย์เดียวกันเกิดขึ้นในออบเจ็กต์มากกว่า 1 ครั้ง ระบบจะเก็บค่าสุดท้ายของคีย์ไว้
- จะมีการแยกวิเคราะห์อาร์เรย์ JSON เป็นรายการ Starlark ใหม่ที่ไม่ได้ตรึงไว้
การถอดรหัสจะไม่สำเร็จหาก x ไม่ใช่การเข้ารหัส JSON ที่ถูกต้อง
พารามิเตอร์
พารามิเตอร์ |
คำอธิบาย |
x
|
ต้องระบุ
|
encode
string json.encode(x)
ฟังก์ชันการเข้ารหัสจะยอมรับอาร์กิวเมนต์ตำแหน่งที่จำเป็น 1 รายการ ซึ่งจะแปลงเป็น JSON ตามแต่ละกรณี ดังนี้
- ไม่มี "จริง" และ "เท็จ" จะแปลงเป็น "null", "true" และ "false" ตามลำดับ
- ระบบจะเข้ารหัสจำนวนเต็มทศนิยมไม่ว่าขนาดใดก็ตาม ตัวถอดรหัสบางรายการอาจถอดรหัสจำนวนเต็มที่มีขนาดใหญ่มากไม่ได้
- ทศนิยมจะเข้ารหัสโดยใช้จุดทศนิยมหรือเลขชี้กำลัง หรือทั้ง 2 อย่าง แม้ว่าค่าตัวเลขจะเป็นจำนวนเต็ม การเข้ารหัสค่าจุดลอยตัวแบบไม่สิ้นสุดเป็นข้อผิดพลาดในการเข้ารหัส
- ค่าสตริงได้รับการเข้ารหัสเป็นสตริง JSON ที่แสดงถึงค่าดังกล่าว ตัวแทนที่ไม่ได้จับคู่แต่ละรายการจะถูกแทนที่ด้วย U+FFFD
- ฟังก์ชันจะเข้ารหัสเป็นออบเจ็กต์ JSON ตามลำดับคีย์ ซึ่งจะเป็นข้อผิดพลาดหากคีย์ใดก็ตามไม่ใช่สตริง
- รายการหรือ Tuple มีการเข้ารหัสเป็นอาร์เรย์ JSON
- ค่าที่คล้ายกับ Struct ถูกเข้ารหัสเป็นออบเจ็กต์ JSON ตามลำดับชื่อช่อง
ประเภทที่แอปพลิเคชันกำหนดอาจกำหนดการเข้ารหัส JSON ของตัวเอง
การเข้ารหัสค่าอื่นๆ จะทำให้เกิดข้อผิดพลาด
พารามิเตอร์
พารามิเตอร์ |
คำอธิบาย |
x
|
ต้องระบุ
|
encode_indent
string json.encode_indent(x, *, prefix='', indent='\t')
ฟังก์ชัน encode_indent เทียบเท่ากับ
json.indent(json.encode(x), ...)
ดูคำอธิบายพารามิเตอร์การจัดรูปแบบที่
indent
พารามิเตอร์
พารามิเตอร์ |
คำอธิบาย |
x
|
ต้องระบุ
|
prefix
|
ค่าเริ่มต้น = ''
|
indent
|
ค่าเริ่มต้น = "\t"
|
เยื้อง
string json.indent(s, *, prefix='', indent='\t')
ฟังก์ชันการเยื้องจะแสดงรูปแบบการเยื้องของสตริงที่เข้ารหัส JSON ที่ถูกต้อง
องค์ประกอบอาร์เรย์หรือช่องออบเจ็กต์แต่ละรายการจะปรากฏในบรรทัดใหม่ เริ่มต้นด้วยสตริงคำนำหน้า ตามด้วยสำเนาสตริงการเยื้องอย่างน้อย 1 สำเนาตามความลึกในการฝัง
ฟังก์ชันนี้ยอมรับพารามิเตอร์ตำแหน่งที่จำเป็น 1 รายการ สตริง JSON และพารามิเตอร์สตริงคีย์เวิร์ดเท่านั้น (ไม่บังคับ) 2 รายการ คำนำหน้าและการเยื้อง ที่ระบุคำนำหน้าของแต่ละบรรทัด และหน่วยการเยื้อง
หากอินพุตไม่ถูกต้อง ฟังก์ชันอาจล้มเหลวหรือแสดงผลเอาต์พุตที่ไม่ถูกต้อง
พารามิเตอร์
พารามิเตอร์ |
คำอธิบาย |
s
|
ต้องระบุ
|
prefix
|
ค่าเริ่มต้น = ''
|
indent
|
ค่าเริ่มต้น = "\t"
|