เครื่องแปลงข้อมูลจาก INI เป็น JSON

ไฟล์ INI เป็นรูปแบบการกำหนดค่าแบบคีย์-ค่าที่เรียบง่าย ซึ่งยังคงพบได้ในแอปพลิเคชันของ Windows, ไฟล์ php.ini ของ PHP เอง และโปรแกรมดำเนินการทดสอบ (CI runner) หลายตัว ส่วน JSON คือรูปแบบที่ไลบรารีสมัยใหม่ส่วนใหญ่คาดหวังไว้ โปรแกรมแปลงนี้จะวิเคราะห์ไฟล์ INI โดยยึดถือโครงสร้างของแต่ละส่วน (section), บรรทัด key = value และคำอธิบายที่เขียนด้วยเครื่องหมายจุดคู่ (semicolon), และแปลงข้อมูลให้อยู่ในรูปแบบ JSON โดยที่แต่ละส่วนจะถูกแทนด้วยออบเจกต์

วิธีแปลงไฟล์ INI เป็น JSON

  1. 1

    วางเนื้อหาของไฟล์ INI

    ส่วนที่อยู่ในวงเล็บกำลังสอง มีคู่ของคีย์และค่าอยู่ด้านล่าง

  2. 2

    การแยกข้อความ

    คำแสดงความคิดเห็น (“;” และ “#”) รวมถึงบรรทัดว่างจะถูกลบออกไป ส่วนช่องว่างรอบเครื่องหมาย “=” จะไม่ถูกพิจารณา

  3. 3

    แปลงเป็น JSON

    แต่ละส่วนจะกลายเป็นออบเจกต์ JSON ส่วนคีย์ระดับสูงสุดที่อยู่นอกส่วนใดๆ จะถูกนำไปยังรากของโครงสร้าง

  4. 4

    คัดลอก JSON

    ผลลัพธ์ถูกพิมพ์ด้วยรูปแบบที่สวยงาม โดยมีการแทรกช่องว่างสองตำแหน่ง

ตัวอย่าง

ข้อมูลที่ป้อนเข้ามา:

; database config
[database]
host = db.example.com
port = 5432
user = app

[cache]
driver = redis
ttl = 3600

ผลลัพธ์:

{
  "database": {
    "host": "db.example.com",
    "port": "5432",
    "user": "app"
  },
  "cache": {
    "driver": "redis",
    "ttl": "3600"
  }
}

ลักษณะเฉพาะของ INI: การจัดการโดยตัวแปลง

ไวยากรณ์ INI พฤติกรรม
; ความคิดเห็น ถูกตัดออก
# ความคิดเห็น ถูกลบออก (ไม่เป็นมาตรฐานแต่พบได้บ่อย)
ส่วนที่ขาด คีย์จะไปยังอ็อบเจกต์ราก
กุญแจซ้ำ ตัวสุดท้ายจะชนะ
รูปแบบอาร์เรย์ key[] จะแปลงเป็นอาร์เรย์ JSON (ในรูปแบบ PHP)
ค่าที่อ้างถึง ข้อความอ้างถูกตัดออก ส่วนเนื้อหาภายในยังคงเหลืออยู่

สิ่งที่มันไม่ทำ

  • การอนุมานชนิดข้อมูล: INI มีการกำหนดชนิดข้อมูลอย่างเข้มงวด; ค่า 42 และ “42” มีลักษณะเหมือนกันทุกประการ ค่าทั้งหมดจะถูกแสดงเป็นสตริง JSON เว้นแต่คุณจะเลือกใช้ขั้นตอน “ลองตรวจสอบแบบตัวเลขหรือค่าบูลีน”
  • ส่วนที่ซ้อนกัน: INI แบบมาตรฐานไม่มีส่วนที่ซ้อนกัน โดยบล็อก [database.primary] จะถูกจัดเก็บเป็นคีย์เดียว แทนที่จะเป็นออบเจกต์ที่มีโครงสร้างซ้อนกัน
  • ค่าหลายบรรทัด (เกินกว่าที่ไฟล์ INI รองรับโดยตรง)

เมื่อ INI ยังคงมีความหมายอยู่

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

คำถามที่พบบ่อย

เนื่องจาก INI มีการกำหนดประเภทข้อมูลอย่างเข้มงวด ทั้ง “42” และ “สี่สิบสอง” ถือเป็นค่าที่ถูกต้องทั้งสองแบบ และตัวแปลงข้อมูลจะไม่สามารถแยกแยะความแตกต่างระหว่างทั้งสองได้หากไม่มีคำแนะนำ หากคุณต้องการข้อมูลในรูปแบบ JSON ที่เป็นตัวเลข ให้ดำเนินการขั้นตอนหลังการประมวลผล หรือเปิดใช้งานฟีเจอร์ “การอนุมานประเภทอัตโนมัติ” หากเครื่องมือของคุณรองรับฟีเจอร์ดังกล่าว

ข้อกำหนดของ INI ไม่รวมส่วนย่อยที่จัดเรียงแบบซ้อนกัน, [a.b] เป็นส่วนเดียว โดยชื่อของมันมีจุดอยู่ในตัว ในการแปลงข้อมูลเหล่านี้เป็นรูปแบบ JSON แบบซ้อนกันถือเป็นเพียงแนวทางปฏิบัติเท่านั้น ไม่ใช่มาตรฐาน ดังนั้นโปรแกรมแปลงจึงคงโครงสร้างของส่วนต่างๆ ไว้ในรูปแบบราบเรียบ

ใช่ บรรทัดหลายบรรทัดของ key[] = value ในส่วนเดียวกันจะถูกรวมเข้าเป็นอาร์เรย์ JSON ส่วนบรรทัดเดียวของ key[] จะยังคงแสดงเป็นอาร์เรย์ที่มีเพียงหนึ่งองค์ประกอบ เพื่อรักษารูปแบบให้สอดคล้องกัน

ไม่ การวิเคราะห์ข้อความจะดำเนินการภายในเบราว์เซอร์ และเนื้อหาจะไม่ถูกส่งออกไปยังภายนอกเด็ดขาด

เครื่องมือที่เกี่ยวข้อง

ตารางอ้างอิง ASCII

ตาราง ASCII ครบตั้งแต่ 0 ถึง 127 พร้อมค่าเลขฐานสิบ ฐานสิบหก ฐานแปด ฐานสอง และรูปแบบการอ้างอิงอักขระแบบตัวเลขของ HTML รวม NUL, LF และ DEL

อ้างอิงตัวอักษร HTML

รายการที่สามารถค้นหาได้ขององค์ประกอบ HTML พร้อมรหัสชื่อและรหัสตัวเลข รวมถึงฟังก์ชันสำเนาด้วยคลิกเดียวสำหรับตัวอักษรพิเศษและสัญลักษณ์ต่างๆ

ตารางอ้างอิงแป้นพิมพ์ลัด

ค้นหาแป้นพิมพ์ลัดเริ่มต้นตามเอกสารของ VS Code, Chrome และ Bash ที่ใช้ GNU Readline บน macOS, Windows และ Linux

เครื่องสร้างตัวอักษรสุ่ม

สร้างตัวอักษร A-Z แบบสุ่ม เลือกจำนวน ตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก หรือแบบผสม แล้วใช้กับเกม โจทย์ หรือกิจกรรมในห้องเรียน

ตัวตรวจสอบอีเมล

ตรวจสอบที่อยู่อีเมล: ตรวจไวยากรณ์ RFC 5322 ค้นหา MX เรกคอร์ดแบบเรียลไทม์ พร้อมรายละเอียดส่วนท้องถิ่น โดเมน และความยาว ไม่มีการส่งอีเมลใด ๆ

เครื่องมือสร้าง EditorConfig

สร้างไฟล์ .editorconfig ด้วยกฎสไตล์และขนาดการเยื้อง การจบบรรทัด ชุดอักขระ และช่องว่างของคุณ เพื่อให้การจัดรูปแบบสอดคล้องกันในทุก IDE และโปรแกรมแก้ไข

เครื่องมือนี้มีให้บริการในภาษาอื่น