JSON

JSON โมดูลเป็นโมดูล Starlark ของฟังก์ชันที่เกี่ยวข้องกับ JSON

สมาชิก

ถอดรหัส

unknown json.decode(x)

ฟังก์ชันถอดรหัสจะยอมรับพารามิเตอร์ตำแหน่ง 1 รายการ ซึ่งก็คือสตริง JSON โดยจะแสดงค่า Starlark ที่สตริงนั้นแสดง
  • "null" "true" และ "false" จะได้รับการแยกวิเคราะห์เป็น ไม่มี จริง และเท็จ
  • ตัวเลขจะถูกแยกวิเคราะห์เป็น int หรือแบบลอยตัวหากมีจุดทศนิยมหรือเลขชี้กำลัง แม้ว่า JSON จะไม่มีไวยากรณ์สำหรับค่าที่ไม่สิ้นสุด แต่อาจถอดรหัสค่าที่มีขนาดใหญ่มากเป็นแบบอนันต์
  • ออบเจ็กต์ JSON ได้รับการแยกวิเคราะห์เป็นดิกต์ Starlark ใหม่ที่ไม่ได้ตรึงไว้ หากสตริงคีย์เดียวกันเกิดขึ้นในออบเจ็กต์มากกว่า 1 ครั้ง ค่าสุดท้ายสำหรับคีย์จะยังคงอยู่
  • อาร์เรย์ JSON ถูกแยกวิเคราะห์เป็นรายการใหม่ของ Starlark ที่ไม่ได้ตรึงไว้
ถอดรหัสไม่สำเร็จหาก x ไม่ใช่การเข้ารหัส JSON ที่ถูกต้อง

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
x ต้องระบุ

เข้ารหัส

string json.encode(x)

ฟังก์ชันการเข้ารหัสจะยอมรับอาร์กิวเมนต์ตำแหน่งที่จำเป็น 1 รายการ ซึ่งจะแปลงเป็น JSON ตามตัวพิมพ์เล็กและใหญ่ ดังนี้

  • ไม่มี จริง และเท็จ จะถูกแปลงเป็น "null", "true" และ "false" ตามลำดับ
  • Int ไม่ว่าจะมีขนาดใหญ่เท่าใด จะเข้ารหัสเป็นจำนวนเต็มทศนิยม ตัวถอดรหัสบางตัวอาจถอดรหัสจำนวนเต็มที่มีขนาดใหญ่มากไม่ได้
  • จำนวนลอยตัวจะเข้ารหัสโดยใช้จุดทศนิยมหรือเลขชี้กำลัง หรือทั้งคู่ แม้ว่าค่าตัวเลขจะเป็นจำนวนเต็ม การเข้ารหัสค่าจุดลอยตัวที่ไม่สิ้นสุดเป็นข้อผิดพลาด
  • ค่าสตริงจะเข้ารหัสเป็นลิเทอรัลของสตริง JSON ที่แสดงถึงค่าดังกล่าว ตัวแทนที่ไม่ได้จับคู่แต่ละรายการจะถูกแทนที่ด้วย U+FFFD
  • คำสั่งจะเข้ารหัสเป็นออบเจ็กต์ JSON ตามลําดับคีย์ ซึ่งจะแสดงเป็นข้อผิดพลาดหากมีคีย์ที่ไม่ใช่สตริง
  • รายการหรือ Tuple ได้รับการเข้ารหัสเป็นอาร์เรย์ 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')

ฟังก์ชันการเยื้องจะแสดงรูปแบบการเยื้องของสตริงที่เข้ารหัส JSON ที่ถูกต้อง ช่ององค์ประกอบหรือออบเจ็กต์อาร์เรย์แต่ละรายการจะปรากฏในบรรทัดใหม่ เริ่มต้นด้วยสตริงคำนำหน้าตามด้วยสำเนาของสตริงการเยื้องอย่างน้อย 1 สำเนา ตามความลึกในการฝัง ฟังก์ชันจะยอมรับพารามิเตอร์ตำแหน่งที่จำเป็น 1 รายการ ซึ่งก็คือสตริง JSON และพารามิเตอร์สตริงเฉพาะคีย์เวิร์ด (ไม่บังคับ) 2 รายการ ได้แก่ คำนำหน้าและการเยื้อง ซึ่งระบุคำนำหน้าของบรรทัดใหม่แต่ละบรรทัด และหน่วยของการเยื้อง หากอินพุตไม่ถูกต้อง ฟังก์ชันอาจล้มเหลวหรือแสดงผลเอาต์พุตที่ไม่ถูกต้อง

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
s ต้องระบุ
prefix ค่าเริ่มต้น = ''
indent ค่าเริ่มต้น = '\t'