JSON เป็น PHP
สร้างคลาส PHP ที่ระบุชนิดพร้อม fromArray() จาก JSON
วาง JSON หรือโหลดตัวอย่างเพื่อสร้างโค้ด PHP
JSON to PHP สร้างอะไร
JSON to PHP แปลงการตอบกลับของ API หรือ JSON ตัวอย่างใดก็ได้เป็นคลาส PHP Constructor promotion เขียนพารามิเตอร์คอนสตรักเตอร์แบบ public ที่ระบุชนิด (PHP 8.0+) ส่วนรูปแบบพร็อพเพอร์ตี public เขียนพร็อพเพอร์ตีที่ระบุชนิดและกำหนดค่าใน fromArray() พารามิเตอร์ที่บังคับมาก่อนพารามิเตอร์ไม่บังคับ ค่าไม่บังคับมีค่าเริ่มต้นเป็น null และแอนโนเทชัน PHPDoc list<Type> อธิบายรายการในอาร์เรย์ที่ชนิดแบบเนทีฟอธิบายไม่ได้
วิธีใช้งาน
- 1.วาง JSON อัปโหลดหรือลากไฟล์ .json มาวาง หรือโหลดตัวอย่างหนึ่งรายการ
- 2.ตั้งชื่อคลาสรากและเนมสเปซ (ไม่บังคับ) เช่น App\Models
- 3.เลือกรูปแบบคลาส และเลือกว่าจะเขียนพร็อพเพอร์ตีที่ระบุชนิดและ PHPDoc หรือไม่
- 4.อ่านหมายเหตุ แล้วคัดลอกโค้ดหรือดาวน์โหลด Models.php ถอดรหัสด้วย json_decode($json, true) แล้วเรียก Root::fromArray($data)
การอนุมานชนิด
- •ตรวจทุกรายการในอาร์เรย์ ไม่ใช่แค่รายการแรก และรวมออบเจ็กต์ในอาร์เรย์เดียวกันเข้าด้วยกัน
- •คีย์ที่ไม่มีในบางออบเจ็กต์เป็นแบบไม่บังคับ คีย์ที่บางครั้งเป็น null เป็นแบบ nullable โดยแยกสองกรณีนี้ออกจากกัน
- •1 และ 2.5 ในตำแหน่งเดียวกันจะขยายเป็นทศนิยม ส่วนการปนกันแบบอื่นจะถูกรายงาน
- •อาร์เรย์ว่างและค่าที่เป็น null เท่านั้นไม่มีหลักฐานของชนิด จึงใช้ชนิดทั่วไปและมีหมายเหตุอธิบาย
- •การแมปชนิด: string → string, integer → int, decimal → float, boolean → bool, array → array พร้อม PHPDoc list<T>, object → class, พบ null → ?T, สเกลาร์ที่ปนกัน → union เช่น string|int, ไม่ทราบชนิด → mixed
ข้อจำกัดและความเป็นส่วนตัว
ตัวอย่างแสดงเพียงหน้าตาของข้อมูลครั้งหนึ่ง ไม่ใช่สัญญา API ทั้งหมด ตรวจสอบฟิลด์ไม่บังคับ ชนิดทั่วไป และขนาดของตัวเลขก่อนนำโค้ดไปใช้ ข้อมูลเข้าจำกัดที่ 5 MB และการซ้อน 256 ระดับ ตั้งแต่ 2 MB ขึ้นไปการสร้างจะรอให้กดปุ่ม สร้าง ทุกอย่างทำงานในเบราว์เซอร์ และ JSON จะไม่ถูกอัปโหลด จำนวนเต็มที่เกิน PHP_INT_MAX จะมีชนิดเป็น mixed เพราะ json_decode แปลงเป็น float เว้นแต่จะใช้ JSON_BIGINT_AS_STRING
