# Trình định dạng JSON

URL: https://discuvr.org/json-formatter/?hl=vi
Last updated: 2026-11-07
MCP tool: `format_json`

Dán JSON vào và nhận ngay kết quả được thụt lề, thu gọn hoặc xác thực. JSON bị lỗi sẽ hiển thị đúng dòng và cột, kèm theo dòng gây lỗi. Không có gì được lưu trữ.

JSON xuất ra từ nhật ký API hay tệp cấu hình thường là một dòng dài duy nhất, và JSON không phân tích được thường thất bại ở đâu đó mà bạn không thấy được. Công cụ này thụt lề nó để bạn có thể đọc, thu gọn nó khi bạn cần nhỏ gọn, và khi nó bị lỗi, công cụ cho bạn biết dòng và cột rồi hiển thị dòng đó.

## Chức năng

- Làm đẹp với 2 khoảng trắng, 4 khoảng trắng hoặc tab - hoặc thu gọn về dạng hợp lệ nhỏ nhất.
- Đầu ra JSON Lines: một bản ghi gọn trên mỗi dòng, cho nhật ký và định dạng luồng.
- Lỗi chính xác - thông báo, dòng, cột và các dòng xung quanh.
- Tùy chọn sắp xếp khóa của mọi đối tượng, để hai tài liệu có thể được so sánh một cách hợp lý.
- Tùy chọn thoát ký tự không phải ASCII thành \uXXXX cho các hệ thống không hỗ trợ UTF-8.
- Tùy chọn chấp nhận chú thích và dấu phẩy thừa ở cuối, và cho biết chính xác những gì đã bị loại bỏ.
- Báo cáo cấu trúc tài liệu: khóa, đối tượng, mảng, độ sâu lồng nhau và dung lượng tiết kiệm được.

## Cách thức hoạt động

1. Dán JSON, hoặc thứ mà bạn hy vọng là JSON.
2. Chọn làm đẹp, thu gọn hoặc JSON Lines rồi nhấn Định dạng.
3. Sao chép hoặc tải xuống kết quả - hoặc đọc lỗi và sửa dòng được nêu tên.

## Tại sao thông báo lỗi quan trọng hơn việc định dạng

Phần lớn thời gian bạn không ở đây để làm cho JSON đẹp hơn - bạn ở đây vì một thứ gì đó đã từ chối nó mà không nói lý do. Trình phân tích báo cáo dòng, cột và những gì nó mong đợi, và công cụ in dòng đó cùng với hai dòng xung quanh. Một dấu phẩy bị thiếu ở dòng thứ bốn trăm trong một cấu hình là một sửa lỗi ba mươi giây một khi bạn biết nó ở đâu.

## Chú thích và dấu phẩy thừa ở cuối

JSON chưa bao giờ cho phép cả hai, nhưng các tệp mà mọi người thực sự đưa cho bạn - tsconfig, cài đặt VS Code, bất cứ thứ gì được chỉnh sửa thủ công - đều đầy chúng. Đánh dấu tùy chọn này sẽ loại bỏ chúng trước khi phân tích, và công cụ sau đó cho biết nó đã loại bỏ bao nhiêu chú thích và bao nhiêu dấu phẩy. Đây là tùy chọn và được báo cáo chính xác vì một trình định dạng âm thầm thay đổi tài liệu của bạn còn tệ hơn một trình từ chối nó.

## Những gì nó không làm

Nó không đoán ý bạn muốn nói gì. Ngoài hai việc loại bỏ ở trên, không có gì được sửa chữa: một dấu ngoặc nhọn chưa đóng, một khóa trong dấu nháy đơn hoặc một khóa không có dấu nháy được báo cáo, không được viết lại. Sắp xếp khóa và thụt lề lại không bao giờ đổi thứ tự một mảng hay thay đổi một chuỗi. Phần tiếp theo liệt kê vài trường hợp mà kết quả vẫn có thể khác với những gì bạn đã dán.

## Số, khóa trùng lặp và NaN

JSON của bạn được phân tích rồi ghi lại, nên một số thứ trở về ở dạng chuẩn hóa. Các số được ghi lại: 1.50 thành 1.5, 1E3 thành 1000.0 và -0 thành 0, còn số thập phân có nhiều chữ số hơn mức một số float 64 bit chứa được sẽ bị làm tròn (0.1000000000000000055 thành 0.1). Số nguyên được giữ chính xác đến 4.300 chữ số (dài hơn sẽ bị từ chối). Nếu một đối tượng lặp lại một khóa, chỉ giá trị cuối cùng được giữ, không có cảnh báo. NaN, Infinity và -Infinity được chấp nhận và giữ nguyên dù JSON chuẩn (RFC 8259) không cho phép chúng, và một số quá lớn đối với float, như 1e400, sẽ ra thành Infinity. Nếu điều nào trong số này quan trọng với hệ thống bạn sắp đưa dữ liệu vào, hãy tự kiểm tra trước khi tin vào một kết quả không có lỗi.

## Câu hỏi

**JSON của tôi có được tải lên hay lưu trữ ở đâu không?**

Nó được gửi đến máy chủ để phân tích và gửi thẳng lại trong cùng một phản hồi. Không có gì được ghi vào đĩa, lưu vào bộ nhớ đệm hay ghi nhật ký, và bản ghi sử dụng chỉ giữ số liệu đếm - kích thước, độ sâu lồng nhau, chế độ đã chọn - không bao giờ là tài liệu.

**Tại sao nó báo JSON của tôi không hợp lệ trong khi trình soạn thảo của tôi lại chấp nhận?**

Thường là do chú thích, dấu phẩy thừa ở cuối, dấu nháy đơn hoặc khóa không có dấu nháy - tất cả đều phổ biến trong tệp cấu hình và không cái nào là JSON hợp lệ. Đánh dấu "cho phép chú thích và dấu phẩy thừa ở cuối" cho hai trường hợp đầu; các trường hợp còn lại thực sự không hợp lệ và phải được sửa.

**Nó có xử lý được tệp lớn không?**

Tối đa 2.000.000 ký tự mỗi yêu cầu; văn bản dài hơn bị từ chối kèm độ dài chính xác của nó. Với tệp cỡ đó, một công cụ dòng lệnh như jq là lựa chọn tốt hơn.

**JSON Lines dùng để làm gì?**

Các pipeline nhật ký và trình tải luồng đọc một đối tượng JSON trên mỗi dòng thay vì một mảng lớn duy nhất. Chọn nó và một mảng cấp cao nhất sẽ trả về dưới dạng một bản ghi gọn trên mỗi dòng.

**Sắp xếp khóa có làm thay đổi dữ liệu của tôi không?**

Không. Thứ tự khóa của đối tượng không có ý nghĩa trong JSON, và thứ tự mảng - vốn có ý nghĩa - không bao giờ bị thay đổi. Việc sắp xếp tồn tại để hai phiên bản của cùng một tài liệu có thể được so sánh mà không có nhiễu.

**Làm sao mở JSON này trong Excel?**

Trong Excel cho Microsoft 365, lưu nó thành file .json rồi chọn Data > Get Data > From File > From JSON. Power Query sẽ mở ra: mảng cấp cao nhất hiện dưới dạng List, To Table biến nó thành một cột Records, và nút mở rộng (hai mũi tên) ở tiêu đề cột tách mỗi khóa ra một cột riêng; mở rộng một mảng lồng nhau sẽ thêm một hàng cho mỗi phần tử. Power Query cần đúng một tài liệu JSON hợp lệ, vì vậy hãy sửa lỗi ở đây trước, nơi bạn thấy dòng và cột, rồi lưu kết quả Làm đẹp hoặc Rút gọn; đầu ra JSON Lines dành cho công cụ log. Bản thân công cụ này không chuyển JSON sang CSV hay Excel.

**Làm sao để kiểm tra hoặc định dạng JSON bằng dòng lệnh?**

Python có sẵn công cụ kiểm tra: python -m json.tool data.json in tài liệu với thụt lề 4 dấu cách, hoặc dừng lại với thông báo như Expecting ',' delimiter: line 3 column 3. Nếu đã cài jq, jq . data.json định dạng tài liệu còn jq empty data.json chỉ kiểm tra và không in gì khi tệp hợp lệ. Cả hai đều không chấp nhận chú thích hay dấu phẩy ở cuối, nên tệp cấu hình có những thứ đó sẽ báo lỗi; hãy dán nó vào đây và đánh dấu "Cho phép chú thích và dấu phẩy ở cuối" để xem những gì đã bị bỏ đi.

**"Expecting property name enclosed in double quotes" nghĩa là gì?**

Trình phân tích đang chờ một khóa của đối tượng nhưng lại gặp thứ khác. Thường là khóa dùng dấu nháy đơn hoặc không có dấu nháy, như {'name': 'Asha'} sao chép từ Python hay JavaScript, sẽ dừng ở dòng 1, cột 2: JSON yêu cầu dấu nháy kép quanh mọi khóa và chuỗi, và công cụ này không bao giờ tự sửa dấu nháy, nên bạn cần tự đổi. Cùng thông báo đó ở một dấu ngoặc nhọn đóng, như trong {"a": 1,}, nghĩa là có dấu phẩy ở cuối; hãy đánh dấu "Cho phép chú thích và dấu phẩy ở cuối" để bỏ nó. Expecting value ở True, False hoặc None nghĩa là giá trị của Python: JSON viết true, false và null bằng chữ thường. Trong Python, json.dumps(data) cho ra JSON hợp lệ còn print(data) thì không. Lỗi được hiển thị đúng như trình phân tích của Python viết, bằng tiếng Anh, để bạn có thể tìm kiếm nguyên văn thông báo.

**"Extra data" nghĩa là gì?**

Trình phân tích đã đọc xong một giá trị JSON hoàn chỉnh rồi gặp thêm văn bản phía sau. Nguyên nhân thường gặp: một tệp log JSON Lines (NDJSON) mỗi dòng một đối tượng, dừng ở dòng 2, cột 1; hai tài liệu dán liền nhau; hoặc một chú thích // sau dấu ngoặc nhọn đóng cuối cùng, thứ mà "Cho phép chú thích và dấu phẩy ở cuối" sẽ bỏ đi. Công cụ này kiểm tra từng tài liệu một, nên hãy dán một bản ghi, hoặc đặt các bản ghi trong [ ] và ngăn cách bằng dấu phẩy; chọn JSON Lines thì chúng lại được ghi ra mỗi dòng một bản ghi.

## Thêm trong Công cụ lập trình

- [Công cụ định dạng Python](https://discuvr.org/python-formatter/?hl=vi)
- [Trình xem HTML](https://discuvr.org/html-viewer/?hl=vi)
- [Máy tính Subnet IP](https://discuvr.org/ip-subnet-calculator/?hl=vi)
- [Mã hóa / Giải mã](https://discuvr.org/encode-decode/?hl=vi)

## Thường dùng cùng

- [CSV sang Excel](https://discuvr.org/csv-to-excel/?hl=vi)

---

Part of Discuvr (https://discuvr.org/): Discuvr is a collection of free, focused tools for day-to-day professional work - office and data utilities, legal and compliance helpers, privacy and security checks, and developer formatters. Every tool has its own page, and most can also be called from ChatGPT or Claude over MCP.
