logo
GeekFormat

บีบอัด JSON

เครื่องมือบีบอัด JSON ออนไลน์ฟรี รองรับการบีบอัดกะทัดรัดบรรทัดเดียว JSON, Escape/Unescape JSON, มีระบบซ่อมไวยากรณ์อัจฉริยะจัดการข้อผิดพลาดที่พบบ่อยเช่น จุลภาคต่อท้ายโดยอัตโนมัติ แสดงอัตราบีบอัดแบบเรียลไทม์ ตัวแก้ไข CodeMirror มีปุ่มลัด ประมวลผลฝั่ง frontend ล้วน

คำแนะนำที่เกี่ยวข้อง

กรณีการใช้งาน

  • บีบอัด body คำขอ/การตอบกลับ JSON ในการพัฒนา API ลดจำนวนไบต์การส่ง HTTP เพิ่มความเร็วการตอบสนองอินเทอร์เฟซ (โดยเฉพาะสภาพแวดล้อมเครือข่ายอ่อนแอบนมือถือ)
  • ลดขนาดไฟล์คอนฟิก JSON frontend, แพ็กเกจภาษา i18n, ข้อมูล Mock ก่อนขึ้น production ลดขนาดทรัพยากรสแตติก
  • Escape อ็อบเจ็กต์ JSON เป็นสตริงลิเทอรัลฝังโค้ดในโค้ด unit test, คำสั่ง Postman/curl
  • Unescape หนึ่งคลิก JSON ที่หลบหน้าแล้ว (เช่น \"key\":\"value\") ที่คัดลอกจากบันทึก (log) ให้เป็น JSON ที่อ่านได้
  • ซ่อมไฟล์ JSON เป็นชุดที่มีข้อผิดพลาดไวยากรณ์ เช่น จุลภาคต่อท้าย อัญประกาศเดี่ยว หนึ่งคลิกเปลี่ยนเป็น JSON ถูกกฎหมาย
  • บีบอัด JSON ที่จัดรูปแบบแล้วให้เป็นบรรทัดเดียว จากนั้นวางลงในพารามิเตอร์คำสั่งบรรทัดเดียวหรือเครื่องมือแชทเพื่อแชร์

คุณสมบัติ

  • ฟังก์ชันสามในหนึ่ง: บีบอัดกะทัดรัด JSON + Escape + Unescape ครอบคลุมสามสถานการณ์: บีบอัดลดขนาด ฝังสตริงโค้ด คืนค่าสตริงหลบหน้า
  • ซ่อมไวยากรณ์อัจฉริยะ: มีเอนจิน tryFixJSON ตรวจจับและซ่อมข้อผิดพลาด JSON ที่พบบ่อยโดยอัตโนมัติ เช่น จุลภาคต่อท้าย อัญประกาศเดี่ยว คอมเมนต์ อัญประกาศที่ไม่ได้ปิด ฯลฯ
  • ตัวแก้ไข CodeMirror: โครงสร้างสองคอลัมน์ ป้อนทางซ้าย ผลลัพธ์ทางขวา รองรับการเน้นไวยากรณ์ JSON แถบแบ่งลากได้ ปรับขนาดตัวอักษร
  • สถิติการบีบอัดเรียลไทม์: แถบสถานะแสดงขนาดเดิม (Bytes/KB/MB), ขนาดหลังบีบอัด, เปอร์เซ็นต์อัตราบีบอัดที่แม่นยำทันที
  • ปุ่มลัดแป้นพิมพ์: Shift+Cmd/Ctrl+C บีบอัด, E escape, U unescape, O อัปโหลด, D ดาวน์โหลด, K ล้างข้อมูล มีประสิทธิภาพไม่ต้องใช้เมาส์
  • โหมดดำเนินการอัตโนมัติ: หลังจากวางหรือแก้ไข debounce 400ms บีบอัด/escape อัตโนมัติ เห็นอะไรได้อย่างนั้น
  • อัปโหลดดาวน์โหลดไฟล์: รองรับลากวางหรือคลิกอัปโหลดไฟล์ .json/.txt หลังประมวลผลหนึ่งคลิกดาวน์โหลด output.json
  • หน่วยความจำประวัติในเครื่อง: localStorage บันทึกเนื้อหาที่ป้อนล่าสุดโดยอัตโนมัติ รีเฟรชหน้าไม่สูญหาย
  • ข้อมูลตัวอย่าง: หนึ่งคลิกโหลด JSON ตัวอย่างเพื่อทดลองใช้เร็วๆ ข้อความเตือนข้อผิดพลาดมีปุ่มซ่อม
  • ปลอดภัยฝั่ง frontend ล้วน: การดำเนินการทั้งหมดทำบนเบราว์เซอร์ในเครื่อง ข้อมูลไม่อัปโหลดไปเซิร์ฟเวอร์ ขาดเน็ตก็ใช้ได้

วิธีการใช้งาน

  1. วางเนื้อหา JSON ลงในตัวแก้ไขด้านซ้าย หรือคลิกปุ่มอัปโหลดเลือกไฟล์ .json/.txt บนเครื่อง หรือคลิกปุ่ม「ตัวอย่าง」เพื่อโหลดตัวอย่าง
  2. ค่าเริ่มต้นดำเนินการโหมดบีบอัดอัตโนมัติ (debounce 400ms) หรือสามารถคลิกปุ่ม「บีบอัด」ด้วยตนเองหรือกดปุ่มลัด Shift+Cmd/Ctrl+C
  3. เมื่อต้องการ escape เป็นสตริงโค้ดให้กด Shift+Cmd/Ctrl+E หรือสลับโหมดเป็น Escape; เมื่อต้องการคืนค่าสตริง escape ให้กด Shift+Cmd/Ctrl+U
  4. หาก JSON มีข้อผิดพลาดไวยากรณ์ ด้านล่างจะแสดงข้อความเตือนข้อผิดพลาดสีแดง เมื่อมีข้อผิดพลาดที่สามารถซ่อมได้จะปรากฏปุ่ม「ลองซ่อม」 คลิกเพื่อซ่อมอัตโนมัติ
  5. แถบสถานะด้านล่างแสดงจำนวนไบต์ก่อน/หลังบีบอัดและเปอร์เซ็นต์อัตราบีบอัดแบบเรียลไทม์ หลังจากยืนยันผลลัพธ์แล้วคลิกปุ่ม「คัดลอก」หรือ「ดาวน์โหลด」
  6. แถบแบ่งระหว่างแผงซ้ายและขวาสามารถลากปรับความกว้างได้ หรือสามารถใช้ปุ่มลัดเพื่อทำการดำเนินการทั้งหมดได้อย่างรวดเร็ว

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

การบีบอัด JSON กับการจัดรูปแบบ JSON แตกต่างกันอย่างไร?

การจัดรูปแบบ JSON (Beautify) คือการเพิ่มการย่อหน้า การขึ้นบรรทัดใหม่ และช่องว่างระหว่างคู่คีย์-ค่าเพื่อให้มนุษย์อ่านง่ายขึ้น เหมาะสำหรับการพัฒนาและดีบัก; การบีบอัด JSON (Minify) คือการลบอักขระช่องว่างที่ไม่จำเป็นทั้งหมด (ช่องว่าง การขึ้นบรรทัดใหม่ แท็บ การย่อหน้า) เปลี่ยน JSON หลายบรรทัดให้เป็นรูปแบบกะทัดรัดบรรทัดเดียว มีจุดประสงค์เพื่อลดขนาด เพิ่มประสิทธิภาพการส่งผ่าน เหมาะสำหรับการส่ง API ในสภาพแวดล้อม production การลดขนาดไฟล์คอนฟิก และการฝังในสตริงโค้ด ทั้งสองเป็นการดำเนินการที่เสริมกัน — ตอนพัฒนาดูเวอร์ชันที่จัดรูปแบบ ตอนขึ้น production ใช้เวอร์ชันที่บีบอัด

JSON Escape คืออะไร? เมื่อไหร่ที่ต้องใช้?

JSON Escape คือการเพิ่มแบ็กสแลช (backslash) หลบหน้าอักขระพิเศษในสตริง JSON (หลักคือเปลี่ยนอัญประกาศคู่ " เป็น \", แบ็กสแลช \ เป็น \\, การขึ้นบรรทัดใหม่เป็น \n ฯลฯ) เปลี่ยนอ็อบเจ็กต์ JSON หลายบรรทัดให้เป็นสตริงลิเทอรัลบรรทัดเดียวที่สามารถฝังโดยตรงในซอร์สโค้ด JavaScript, Java, Python ฯลฯ สถานการณ์ทั่วไป: ตอนเขียน unit test ฝังการตอบกลับ JSON เป็นสตริงในโค้ดทดสอบ; ส่งสตริง JSON ในคำสั่ง Postman หรือ curl; กำหนด JSON เป็นค่าสตริงในไฟล์คอนฟิก Unescape คือการคืนค่าสตริงที่หลบหน้าแล้วกลับเป็น JSON มาตรฐาน

หาก JSON ที่ป้อนมีข้อผิดพลาดไวยากรณ์ (เช่น จุลภาคต่อท้าย) การบีบอัดจะสำเร็จหรือไม่?

ได้ เครื่องมือนี้มีเอนจินซ่อมไวยากรณ์อัจฉริยะ (tryFixJSON) ก่อนบีบอัดจะตรวจจับและพยายามซ่อมข้อผิดพลาด JSON ที่พบบ่อยโดยอัตโนมัติ: 1) จุลภาคเกินที่ท้าย (trailing comma) เช่น {"a":1,}; 2) อัญประกาศเดี่ยวแทนอัญประกาศคู่ เช่น {'a':1}; 3) สตริงที่ไม่ได้ปิด; 4) คอมเมนต์ JavaScript (// และ /* */); 5) จุลภาคเกินที่ท้าย ฯลฯ หลังจากซ่อมแล้วจึงดำเนินการบีบอัดหรือ escape รับประกันผลลัพธ์ JSON ถูกกฎหมาย 100% หากตรวจพบข้อผิดพลาดที่สามารถซ่อมได้ จะแสดงปุ่ม「ลองซ่อม」บนแผงควบคุม คลิกเพื่อแก้ไขในหนึ่งคลิก

การบีบอัด JSON จะทำให้ข้อมูลสูญหายหรือไม่? อัตราบีบอัดโดยทั่วไปคือเท่าไหร่?

ไม่สูญหายข้อมูล การบีบอัด JSON เป็นเพียงการลบอักขระช่องว่างจัดรูปแบบ (ช่องว่าง การขึ้นบรรทัดใหม่ แท็บ) ไม่เปลี่ยนชื่อคีย์ ค่า ชนิดข้อมูล และโครงสร้างใดๆ หลังจาก JSON.parse แล้ว JSON.stringify จะสอดคล้องกับข้อมูลเดิมอย่างสมบูรณ์ อัตราบีบอัดขึ้นอยู่กับระดับการจัดรูปแบบของ JSON เดิม: หากเดิมเป็น JSON ที่จัดรูปแบบด้วยการย่อหน้า 2 ช่องว่าง อัตราบีบอัดโดยทั่วไปอยู่ที่ 20%-40% (ลบการย่อหน้าและขึ้นบรรทัดใหม่); หากมีช่องว่างต่อเนื่องจำนวนมากหรือคอมเมนต์ (หลังซ่อม) อัตราบีบอัดสามารถถึงมากกว่า 50% แถบสถานะแสดงจำนวนไบต์เดิม จำนวนไบต์หลังบีบอัด และอัตราบีบอัดที่แม่นยำแบบเรียลไทม์

เมื่อบีบอัดคอนฟิก JSON ที่ละเอียดอ่อนหรือข้อมูล API จะรั่วไหลหรือไม่?

ไม่รั่วไหล เครื่องมือนี้ใช้สถาปัตยกรรมประมวลผลฝั่ง frontend ล้วน การแยกวิเคราะห์ การบีบอัด การ escape และการซ่อมแซม JSON ทั้งหมดเสร็จสิ้นในเอนจิน JavaScript ของเบราว์เซอร์บนเครื่องของคุณ ข้อมูลจะไม่ถูกอัปโหลดไปยังเซิร์ฟเวอร์ภายนอกผ่านคำขอเครือข่ายใดๆ แม้ขาดการเชื่อมต่ออินเทอร์เน็ตก็สามารถใช้งานได้ปกติ คีย์ API คอนฟิกฐานข้อมูล ข้อมูลธุรกิจ และข้อมูลละเอียดอ่อนของคุณจะอยู่ในเครื่องเสมอ

รองรับปุ่มลัดอะไรบ้าง?

เพื่อเพิ่มประสิทธิภาพ เครื่องมือนี้รองรับปุ่มลัดแป้นพิมพ์ที่สมบูรณ์ (macOS ใช้ ⌘+Shift, Windows ใช้ Ctrl+Shift): Shift+⌘/Ctrl+C บีบอัดหนึ่งคลิก; Shift+⌘/Ctrl+E escape; Shift+⌘/Ctrl+U unescape; Shift+⌘/Ctrl+O อัปโหลดไฟล์; Shift+⌘/Ctrl+D ดาวน์โหลดผลลัพธ์; Shift+⌘/Ctrl+K ล้างข้อมูล ขณะป้อนข้อมูล เครื่องมือจะใช้ debounce 400ms ดำเนินการโหมดปัจจุบันโดยอัตโนมัติ ไม่จำเป็นต้องคลิกปุ่มซ้ำๆ

การบีบอัด JSON (JSON Minify) คืออะไร?

การบีบอัด JSON (JSON Minification) คือกระบวนการลบอักขระช่องว่างที่ไม่จำเป็นทั้งหมดในข้อความ JSON (ช่องว่าง อักขระขึ้นบรรทัดใหม่ \n, อักขระแท็บ \t, อักขระขึ้นบรรทัด \r) และคอมเมนต์ (ไม่เป็นมาตรฐานแต่พบบ่อย) เปลี่ยน JSON ที่จัดรูปแบบด้วยการย่อหน้าหลายชั้นให้เป็นรูปแบบกะทัดรัดบรรทัดเดียว การบีบอัด JSON ไม่เปลี่ยนแปลงเนื้อหาข้อมูลใดๆ — ชื่อคีย์ ค่า ชนิดข้อมูล (สตริง/ตัวเลข/บูลีน/null/อาร์เรย์/อ็อบเจ็กต์) โครงสร้างที่ซ้อนกันยังคงไม่เปลี่ยนแปลงทั้งหมด เพียงแค่ลบช่องว่างจัดรูปแบบที่ใช้สำหรับการอ่านของมนุษย์

คุณค่าหลักของการบีบอัด JSON คือการลดขนาดข้อมูล ช่องว่างย่อหน้าและการขึ้นบรรทัดใหม่ใน JSON ที่จัดรูปแบบแม้จะเป็นมิตรกับนักพัฒนา แต่เป็นไบต์ที่ซ้ำซ้อนเมื่อส่งผ่านและจัดเก็บเครือข่าย ตัวอย่างเช่น การตอบกลับ API ทั่วไป หลังจัดรูปแบบอาจมีขนาด 2KB หลังบีบอัดอาจเหลือเพียง 1.2-1.5KB ขนาดลดลง 25%-40% ในสถานการณ์ API ที่มีการทำงานพร้อมกันสูง สภาพแวดล้อมเครือข่ายอ่อนแอบนมือถือ การแจกจ่ายไฟล์คอนฟิกขนาดใหญ่ การบีบอัด JSON สามารถลดการใช้แบนด์วิธ เพิ่มความเร็วในการส่งผ่าน ลดค่าใช้จ่ายเซิร์ฟเวอร์อย่างมีนัยสำคัญ ในสภาพแวดล้อม production มักใช้ร่วมกับการบีบอัด HTTP เช่น Gzip/Brotli แต่ JSON Minify ในฐานะการบีบอัดชั้นเนื้อหายังคงไม่สามารถทดแทนได้

การนำไปใช้งานการบีบอัด JSON นั้นง่ายมาก: ใช้ JSON.parse() เพื่อแยกวิเคราะห์ข้อความเป็นอ็อบเจ็กต์ JavaScript จากนั้นใช้ JSON.stringify(obj) โดยไม่มีพารามิเตอร์การย่อหน้าเพื่อทำให้เป็นอนุกรมและส่งออก — นั่นคือวิธีการนำไปใช้งานหลักของเครื่องมือนี้ วิธี parse + stringify นี้รับประกันตามธรรมชาติว่า JSON ที่ส่งออกถูกกฎหมาย 100% ยังสามารถลบคอมเมนต์ที่ผิดกฎหมายและจุลภาคต่อท้ายโดยอัตโนมัติ (ร่วมกับการซ่อมแซมข้อผิดพลาด) ควรทราบ: การบีบอัด JSON และการบีบอัด Gzip เป็นการเพิ่มประสิทธิภาพสองชั้นที่แตกต่างกัน — JSON Minify คือชั้นเนื้อหาลบช่องว่างที่ซ้ำซ้อน Gzip คืออัลกอริทึมการบีบอัดทั่วไปของชั้นการส่งผ่าน ทั้งสองสามารถใช้ซ้อนทับกันได้

术语表

JSON
JavaScript Object Notation รูปแบบการแลกเปลี่ยนข้อมูลน้ำหนักเบา ใช้คู่คีย์-ค่าและโครงสร้างอาร์เรย์ มนุษย์อ่านได้และเครื่องแยกวิเคราะห์ง่าย เป็นรูปแบบข้อมูลมาตรฐานของ REST API
Minify / บีบอัด
กระบวนการลบอักขระที่ไม่จำเป็นทั้งหมด (ช่องว่าง ขึ้นบรรทัดใหม่ คอมเมนต์) ในโค้ด/ข้อมูลเพื่อลดขนาด พบบ่อยในทรัพยากร frontend เช่น JS/CSS/JSON
Beautify / จัดรูปแบบ
การดำเนินการตรงข้ามของ Minify เพิ่มการย่อหน้า ขึ้นบรรทัดใหม่ ช่องว่างทำให้โครงสร้าง JSON ชัดเจนอ่านง่าย เรียกอีกอย่างว่า Prettify หรือ Pretty Print
Escape / หลบหน้า
เพิ่มแบ็กสแลชก่อนอักขระพิเศษ (เช่น " เป็น \", ขึ้นบรรทัดใหม่เป็น \n) เปลี่ยน JSON หลายบรรทัดเป็นสตริงลิเทอรัลบรรทัดเดียวที่สามารถฝังในโค้ดได้
Unescape / ถอดหลบหน้า
การดำเนินการตรงข้ามของ escape คืนค่าลำดับหลบหน้าเช่น \", \n, \\ เป็นอักขระดั้งเดิม กู้คืนรูปแบบ JSON มาตรฐาน
Trailing Comma / จุลภาคต่อท้าย
จุลภาคที่เกินมาหลังองค์ประกอบสุดท้ายของอ็อบเจ็กต์หรืออาร์เรย์ JavaScript อนุญาตแต่มาตรฐาน JSON ไม่อนุญาต เป็นข้อผิดพลาดไวยากรณ์ JSON ที่พบบ่อยที่สุด
Gzip / Brotli
อัลกอริทึมการบีบอัดทั่วไปของชั้นส่งผ่าน HTTP เสริมกับ JSON Minify หลังจาก Minify แล้วบีบอัด Gzip จะได้ผลลัพธ์ที่ดีที่สุด
Payload / เพย์โหลด
ตัวข้อมูลที่ส่งผ่านจริงในคำขอหรือการตอบกลับ API (โดยปกติเป็นรูปแบบ JSON) การบีบอัด Payload สามารถลดการใช้แบนด์วิธโดยตรง
CodeMirror
คอมโพเนนต์ตัวแก้ไขโค้ดฝั่งเบราว์เซอร์ เครื่องมือนี้ใช้มันเพื่อเน้นไวยากรณ์ JSON, แสดงเลขบรรทัด, จับคู่วงเล็บ และประสบการณ์การแก้ไขระดับมืออาชีพอื่นๆ

เปรียบเทียบการบีบอัด JSON กับวิธีการบีบอัดทั่วไป

วิธีการบีบอัดชั้นการบีบอัดสูญเสียข้อมูลความสามารถในการอ่านสถานการณ์ที่ใช้
JSON Minifyชั้นเนื้อหา (ลบช่องว่าง)ไม่สูญเสียอ่านไม่ได้ (บรรทัดเดียว)ส่ง API production, ลดขนาดคอนฟิก
JSON Beautifyชั้นเนื้อหา (เพิ่มช่องว่าง)ไม่สูญเสียอ่านได้สูงพัฒนาดีบัก อ่านด้วยตนเอง
Gzipชั้นส่งผ่านไม่สูญเสียอ่านไม่ได้ (ไบนารี)HTTP Content-Encoding
Brotliชั้นส่งผ่านไม่สูญเสียอ่านไม่ได้ (ไบนารี)บีบอัดทรัพยากรสแตติก HTTPS (สูงกว่า Gzip 20%)
MessagePackชั้นซีเรียลไลซ์ไม่สูญเสียอ่านไม่ได้ (ไบนารี)การสื่อสารภายใน RPC ประสิทธิภาพสูง

ตารางอ้างอิงอักขระพิเศษ JSON Escape

อักขระเดิมหลังหลบหน้าชื่อหมายเหตุ
"\"อัญประกาศคู่อักขระที่พบบ่อยที่สุดที่จำเป็นต้องหลบหน้าในสตริง JSON
\\\แบ็กสแลชอักขระหลบหน้าเองจำเป็นต้องถูกหลบหน้า
ขึ้นบรรทัดใหม่\nNewlineสตริงหลายบรรทัดบีบอัดเป็นบรรทัดเดียวจำเป็นต้องหลบหน้า
แท็บ\tTabหลบหน้าแท็บย่อหน้า
ไปต้นบรรทัด\rCarriage ReturnCR ใน CRLF ขึ้นบรรทัดใหม่ของ Windows
/\/สแลชมาตรฐาน JSON อนุญาตแต่ไม่บังคับให้หลบหน้า (ไม่บังคับ)

Authoritative References