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