เครื่องมือสำหรับนักพัฒนา

เครื่องมือแปลง JSON ↔ YAML

แปลง JSON เป็น YAML หรือ YAML เป็น JSON ภายในเครื่อง รองรับอาร์เรย์ซ้อน สตริง และตัวเลขที่แม่นยำ

ค่าที่ป้อน

แปลงข้อมูล YAML 1.2 โดยไม่เก็บความคิดเห็นและรูปแบบ ขนาดข้อมูลสูงสุด 2 MiB

ผลลัพธ์

แปลง JSON และ YAML ด้วยชนิดข้อมูลที่ต้องการ

แปลงข้อมูลที่เข้ากันได้กับ JSON ระหว่าง JSON แบบเคร่งครัดและไวยากรณ์หลัก YAML 1.2 ตัวแปลงคงโทเค็นตัวเลข JSON รวมถึงจำนวนเต็มขนาดใหญ่ ไม่แปลงผ่านตัวเลข JavaScript แล้วปัดเศษก่อน เครื่องมือแปลงค่าข้อมูล ไม่ใช่รูปแบบเอกสารต้นทางหรือสคีมาการตั้งค่าแอปพลิเคชัน หมายเหตุ จุดยึด และรูปแบบการแสดงของ YAML ไม่คงอยู่เมื่อแปลงเป็น JSON

ขั้นตอนการใช้งาน

  1. วางข้อความหรือเปิดไฟล์ JSON, YAML, YML หรือ TXT แบบ UTF-8 บนอุปกรณ์ เลือก JSON → YAML หรือ YAML → JSON อย่างชัดเจน การเปิดไฟล์ไม่ได้ตรวจจับทิศทางการแปลง
  2. เลือกเว้นวรรคสองหรือสี่ช่อง และเรียงคีย์ออบเจ็กต์ได้ตามต้องการ ประมวลผลข้อมูลแล้วแก้ข้อผิดพลาดไวยากรณ์หรือคุณสมบัติที่ไม่รองรับ การเรียงทำกับออบเจ็กต์ที่ซ้อนด้วยโดยใช้ลำดับตามอักขระที่แยกตัวพิมพ์ใหญ่เล็ก ลำดับอาร์เรย์คงเดิม
  3. ตรวจสอบสตริง บูลีน 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 ทุกอย่างให้เหมือนเดิม

ตัวเลขขนาดใหญ่ปลอดภัยในแอปพลิเคชันปลายทางหรือไม่?

ตัวแปลงคงรูปเขียนตัวเลขที่รองรับและค่าจำนวนเต็มขนาดใหญ่ แต่โปรแกรมถัดไปอาจแยกวิเคราะห์ด้วยความแม่นยำต่ำกว่า หากค่าที่ดูเหมือนตัวเลขเป็นรหัสระบุ ให้ใช้สตริงที่มีเครื่องหมายคำพูดและทดสอบตัวแยกวิเคราะห์ของแอปพลิเคชันปลายทาง