บีบอัด JSON
เครื่องมือบีบอัด JSON ออนไลน์ฟรี รองรับการบีบอัดกะทัดรัดบรรทัดเดียว JSON, Escape/Unescape JSON, มีระบบซ่อมไวยากรณ์อัจฉริยะจัดการข้อผิดพลาดที่พบบ่อยเช่น จุลภาคต่อท้ายโดยอัตโนมัติ แสดงอัตราบีบอัดแบบเรียลไทม์ ตัวแก้ไข CodeMirror มีปุ่มลัด ประมวลผลฝั่ง frontend ล้วน
คำแนะนำที่เกี่ยวข้อง
การบีบอัด 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 คืออัลกอริทึมการบีบอัดทั่วไปของชั้นการส่งผ่าน ทั้งสองสามารถใช้ซ้อนทับกันได้
กรณีการใช้งาน
- บีบอัด 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 ลงในตัวแก้ไขด้านซ้าย หรือคลิกปุ่มอัปโหลดเลือกไฟล์ .json/.txt บนเครื่อง หรือคลิกปุ่ม「ตัวอย่าง」เพื่อโหลดตัวอย่าง
- ค่าเริ่มต้นดำเนินการโหมดบีบอัดอัตโนมัติ (debounce 400ms) หรือสามารถคลิกปุ่ม「บีบอัด」ด้วยตนเองหรือกดปุ่มลัด Shift+Cmd/Ctrl+C
- เมื่อต้องการ escape เป็นสตริงโค้ดให้กด Shift+Cmd/Ctrl+E หรือสลับโหมดเป็น Escape; เมื่อต้องการคืนค่าสตริง escape ให้กด Shift+Cmd/Ctrl+U
- หาก 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 ล้วน: การดำเนินการทั้งหมดทำบนเบราว์เซอร์ในเครื่อง ข้อมูลไม่อัปโหลดไปเซิร์ฟเวอร์ ขาดเน็ตก็ใช้ได้
คำถามที่พบบ่อย
การบีบอัด 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
- 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 |
\ | \\ | แบ็กสแลช | อักขระหลบหน้าเองจำเป็นต้องถูกหลบหน้า |
ขึ้นบรรทัดใหม่ | \n | Newline | สตริงหลายบรรทัดบีบอัดเป็นบรรทัดเดียวจำเป็นต้องหลบหน้า |
แท็บ | \t | Tab | หลบหน้าแท็บย่อหน้า |
ไปต้นบรรทัด | \r | Carriage Return | CR ใน CRLF ขึ้นบรรทัดใหม่ของ Windows |
/ | \/ | สแลช | มาตรฐาน JSON อนุญาตแต่ไม่บังคับให้หลบหน้า (ไม่บังคับ) |
Authoritative References
- บีบอัด JSON
- แปลง CSV เป็น JSON
- JSON เป็น CSV
- JSON Diff
- JSON Escape / Unescape
- แฟลตเทน JSON
- จัดรูปแบบ JSON
- เครื่องมือสร้าง JSON
- คิวรี JSONPath
- รวม JSON
- ซ่อมแซม JSON
- ตัวตรวจสอบ JSON Schema
- เรียง JSON
- JSON Stringify
- JSON เป็น HTML
- JSON เป็น Java
- JSON เป็น Markdown
- แปลง JSON เป็น SQL
- JSON เป็น TOML
- JSON เป็น TypeScript
- แปลง XML เป็น JSON
- แปลง JSON เป็น XML
- YAML เป็น JSON
- JSON → YAML
- JSON เป็น Go
- JSON เป็น Rust
- JSON to Swift
- JSON เป็น C#
- JSON เป็น C++
- JSON เป็น PHP
- JSON เป็น Python