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