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