เครื่องมือสำหรับนักพัฒนา
เครื่องมือแปลง JSON ↔ YAML
แปลง JSON เป็น YAML หรือ YAML เป็น JSON ภายในเครื่อง รองรับอาร์เรย์ซ้อน สตริง และตัวเลขที่แม่นยำ
ผลลัพธ์
แปลง JSON และ YAML ด้วยชนิดข้อมูลที่ต้องการ
แปลงข้อมูลที่เข้ากันได้กับ JSON ระหว่าง JSON แบบเคร่งครัดและไวยากรณ์หลัก YAML 1.2 ตัวแปลงคงโทเค็นตัวเลข JSON รวมถึงจำนวนเต็มขนาดใหญ่ ไม่แปลงผ่านตัวเลข JavaScript แล้วปัดเศษก่อน เครื่องมือแปลงค่าข้อมูล ไม่ใช่รูปแบบเอกสารต้นทางหรือสคีมาการตั้งค่าแอปพลิเคชัน หมายเหตุ จุดยึด และรูปแบบการแสดงของ YAML ไม่คงอยู่เมื่อแปลงเป็น JSON
ขั้นตอนการใช้งาน
- วางข้อความหรือเปิดไฟล์ JSON, YAML, YML หรือ TXT แบบ UTF-8 บนอุปกรณ์ เลือก JSON → YAML หรือ YAML → JSON อย่างชัดเจน การเปิดไฟล์ไม่ได้ตรวจจับทิศทางการแปลง
- เลือกเว้นวรรคสองหรือสี่ช่อง และเรียงคีย์ออบเจ็กต์ได้ตามต้องการ ประมวลผลข้อมูลแล้วแก้ข้อผิดพลาดไวยากรณ์หรือคุณสมบัติที่ไม่รองรับ การเรียงทำกับออบเจ็กต์ที่ซ้อนด้วยโดยใช้ลำดับตามอักขระที่แยกตัวพิมพ์ใหญ่เล็ก ลำดับอาร์เรย์คงเดิม
- ตรวจสอบสตริง บูลีน null และตัวเลข แล้วคัดลอก พิมพ์ หรือดาวน์โหลด converted.yaml หรือ converted.json หากแก้ข้อมูลหรือตัวเลือก ให้ประมวลผลใหม่เพราะผลลัพธ์เดิมถูกล้าง ตรวจสอบไฟล์ที่แปลงกับแอปพลิเคชันที่จะใช้จริง
การตั้งค่าและข้อจำกัด
- ชนิดข้อมูลและกฎเอกสาร
- ใช้เอกสาร YAML 1.2 หนึ่งเอกสารที่มีคีย์สตริงไม่ซ้ำและค่าที่เข้ากันได้กับ JSON ใส่เครื่องหมายคำพูดรอบรหัสที่ดูเป็นตัวเลข เช่น "00123" หาก YAML 00123 ไม่มีเครื่องหมายคำพูดจะกลายเป็นตัวเลข 123 ค่าธรรมดา yes, on และข้อความวันที่ ISO คงเป็นสตริงตามกฎหลัก
- นามแฝงและคุณสมบัติที่ไม่รองรับ
- นามแฝงที่ไม่วนกลับจะขยายเป็นค่าซ้ำ วงจร คีย์ซ้ำ คีย์ที่ไม่ใช่สตริง แท็กที่ไม่รองรับ และตัวเลขที่ไม่ใช่จำนวนจำกัดจะถูกปฏิเสธ คีย์ผสาน YAML ไม่ถูกนำไปใช้: <<: *base กลายเป็นพร็อพเพอร์ตี "<<" ธรรมดา จึงควรขยายฟิลด์ที่ต้องการสืบทอดไว้ก่อน
- ขนาดและความซับซ้อน
- ข้อมูลนำเข้าจำกัดที่ข้อความ UTF-8 ขนาด 2 MiB หรือ 2,097,152 ไบต์ ผลลัพธ์จำกัดที่ 8 MiB การประมวลผลยังหยุดเมื่อซ้อนเกิน 128 ระดับ มีโหนดค่ามากกว่า 200,000 โหนด หรืออ้างถึงนามแฝงเกิน 100 ครั้ง ไฟล์เล็กก็อาจเกินข้อจำกัดเหล่านี้
ตัวอย่างการใช้งาน
ดาวน์โหลด types-example.json เลือก JSON → YAML โดยย่อหน้าด้วยช่องว่างสองช่องและปิดการเรียง แปลงแล้วเปรียบเทียบกับ types-example.yaml ค่าของ id และ word ที่มีเครื่องหมายคำพูดยังคงเป็นสตริง enabled ยังคงเป็น false และ retries กับ large ยังคงเป็นตัวเลข
ดาวน์โหลดไฟล์ตัวอย่าง
ข้อมูลตัวอย่างที่ป้อน
{"id":"00123","word":"yes","enabled":false,"retries":3,"large":9007199254740993}ผลลัพธ์ที่คาดหวัง
"id": "00123"
"word": "yes"
"enabled": false
"retries": 3
"large": 9007199254740993จากนั้นเปิด types-example.yaml เปลี่ยนเป็น YAML → JSON อย่างชัดเจนและประมวลผลอีกครั้ง id ควรยังเป็น "00123" และจำนวนเต็มขนาดใหญ่ควรยังเป็น 9007199254740993 ลบเครื่องหมายคำพูดรอบ 00123 ใน YAML แล้วทำซ้ำ ค่าจะเป็นตัวเลข 123 ความต่างนี้สำคัญต่อรหัสระบุ แม้ทั้งสองไฟล์ถูกต้อง
คำถามและการแก้ปัญหา
ทำไม JSON ที่มีคีย์ซ้ำจึงแปลงไม่ได้ที่นี่ แต่จัดรูปแบบได้ที่อื่น?
เครื่องมือจัดรูปแบบ JSON เตือนและคงคีย์ซ้ำไว้ได้ ตัวแปลงนี้ปฏิเสธเพราะการแปลงเป็นชุดจับคู่คีย์กับค่าอาจเปลี่ยนความหมาย เลือกว่าค่าใดควรอยู่ในต้นทาง แล้วลบรายการซ้ำก่อนแปลง
หมายเหตุและการสืบทอดของ YAML จะคงอยู่หรือไม่?
JSON ไม่มีหมายเหตุหรือจุดยึด นามแฝงจะขยาย ส่วนคีย์ผสานส่งออกตามตัวอักษรแทนการใช้เป็นการสืบทอด ขยายข้อมูลที่ต้องการและตรวจสอบผลลัพธ์ การแปลงไม่ได้เขียนคุณสมบัติ YAML ทุกอย่างให้เหมือนเดิม
ตัวเลขขนาดใหญ่ปลอดภัยในแอปพลิเคชันปลายทางหรือไม่?
ตัวแปลงคงรูปเขียนตัวเลขที่รองรับและค่าจำนวนเต็มขนาดใหญ่ แต่โปรแกรมถัดไปอาจแยกวิเคราะห์ด้วยความแม่นยำต่ำกว่า หากค่าที่ดูเหมือนตัวเลขเป็นรหัสระบุ ให้ใช้สตริงที่มีเครื่องหมายคำพูดและทดสอบตัวแยกวิเคราะห์ของแอปพลิเคชันปลายทาง