logo
GeekFormat

Trình định dạng JSON

Không có nội dung

preview.json
Sẵn sàng

Công cụ Trình định dạng JSON trực tuyến miễn phí. Hỗ trợ làm đẹp, xác thực, nén JSON và chỉnh sửa trực quan cây JSON. Tích hợp phát hiện lỗi cú pháp và sửa chữa tự động, hỗ trợ chuyển đổi mã sang 13 ngôn ngữ lập trình (TypeScript/Java/Python/Go/Rust/Swift/Kotlin/C#/C++/PHP/MySQL/YAML/XML). Lý tưởng cho gỡ lỗi API, kiểm tra cấu hình và đọc nhật ký.

Đề xuất Liên quan

Trường hợp sử dụng

  • Làm đẹp JSON một dòng từ các phản hồi API thành cấu trúc dễ đọc để dễ dàng khắc phục sự cố
  • Định dạng các tệp cấu hình và trường nhật ký trước khi xử lý thêm
  • Nhanh chóng xác thực xem JSON có hợp lệ không và nén kích thước trong quá trình phát triển và gỡ lỗi
  • Cần chuyển đổi JSON thành các giao diện TypeScript, lớp Java, từ điển Python hoặc các định dạng mã khác
  • Sắp xếp theo tên khóa trước khi so sánh hai phản hồi API từng trường
  • Lập bản đồ các cấu trúc lồng phức tạp từ API của bên thứ ba bằng chế độ xem cây hoặc bản đồ tư duy để hiểu nhanh phân cấp
  • Mở rộng nhật ký phân tích và dữ liệu Webhook đã nén để đọc, định vị các trường bất thường
  • Định dạng JSON nén từ các biến môi trường cục bộ hoặc cấu hình để chỉnh sửa, sau đó nén để ghi lại

Tính năng

  • Làm đẹp JSON trực quan: Nhanh chóng sắp xếp dữ liệu một dòng thành cấu trúc phân cấp dễ đọc, có thể chuyển đổi thụt lề 2/4 khoảng trắng hoặc Tab
  • Hỗ trợ Xác thực và Nén: Phát hiện lỗi cú pháp thời gian thực với gợi ý vị trí chính xác, nén thành một dòng nhỏ gọn nhất chỉ với một cú nhấp chuột
  • Chuyển đổi mã sang 13 ngôn ngữ lập trình: Tạo một cú nhấp chuột cho TypeScript/Java/Python/Go/Rust/Swift/Kotlin/C#/C++/PHP/MySQL/YAML/XML
  • Chỉnh sửa trực quan Chế độ xem cây JSON: Thu gọn/mở rộng nút, xem và sửa đổi các cấu trúc lồng sâu một cách trực quan
  • Chế độ xem bản đồ tư duy: Trình bày mối quan hệ cha-con đối tượng/mảng thông qua các nút kết nối, lý tưởng để lập bản đồ các cấu trúc phức tạp
  • Sắp xếp khóa: Sắp xếp lại các khóa đối tượng theo thứ tự bảng chữ cái tăng dần/giảm dần, thuận tiện cho so sánh khác biệt và chuẩn hóa thứ tự trường
  • Xử lý tệp lớn mượt mà: Cuộn ảo + phân tích cú pháp nền Web Worker, tệp JSON vài MB không bị trễ
  • Quyền riêng tư và Bảo mật: Xử lý hoàn toàn cục bộ trong trình duyệt, không tải lên dữ liệu, an toàn để xử lý các phản hồi chứa bí mật
  • Các thao tác thuận tiện: Tải lên/tải xuống tệp, sao chép một cú nhấp, hoàn tác lịch sử, chia sẻ URL — tất cả đều được bao gồm

Cách Sử dụng

  1. Dán nội dung JSON hoặc tải lên tệp JSON
  2. Chọn chế độ Làm đẹp, Nén hoặc Xác thực; bạn cũng có thể chuyển sang Chế độ xem cây/Bản đồ tư duy để duyệt trực quan
  3. Xem lại cấu trúc phân cấp đã định dạng và thông báo lỗi; chuyển sang Chuyển đổi mã nếu cần để tạo cấu trúc ngôn ngữ đích
  4. Sao chép nội dung đã xử lý, tải xuống tệp hoặc tạo liên kết chia sẻ

Câu hỏi Thường gặp

Làm thế nào để nhanh chóng định dạng JSON một dòng thành cấu trúc dễ đọc?

Chỉ cần dán nội dung JSON vào trình chỉnh sửa để làm đẹp ngay lập tức. Tuyệt vời để xem các phản hồi API, tệp cấu hình và trường nhật ký. Công cụ tự động thêm thụt lề và xuống dòng, sắp xếp dữ liệu nén thành cấu trúc phân cấp rõ ràng. Mặc định sử dụng thụt lề 2 khoảng trắng; bạn cũng có thể chuyển đổi kích thước thụt lề trong thanh công cụ.

Sự khác biệt giữa Trình định dạng JSON và Sửa chữa JSON là gì?

Trình định dạng JSON phù hợp hơn cho nội dung đã hợp lệ nhưng khó đọc. Sửa chữa JSON phù hợp hơn để sửa các cấu trúc không hợp lệ như lỗi, thiếu dấu ngoặc kép và dấu phẩy cuối. Nếu định dạng báo lỗi, chúng tôi khuyên bạn nên thực hiện Sửa chữa JSON trước. Tóm lại: định dạng chỉ điều chỉnh bố cục mà không thay đổi nội dung; sửa chữa cố gắng điền các dấu ngoặc kép/dấu ngoặc bị thiếu và xóa các dấu phẩy thừa để làm cho nó thành JSON hợp lệ lại.

Tại sao định dạng JSON lại báo lỗi?

Thường là vì nội dung không phải là JSON hợp lệ — ví dụ: nó chứa chú thích, dấu ngoặc đơn, dấu phẩy cuối hoặc dấu ngoặc chưa đóng. Đặc tả JSON (RFC 8259) yêu cầu các khóa phải sử dụng dấu ngoặc kép, chuỗi không thể sử dụng dấu ngoặc đơn, không được có dấu phẩy sau phần tử cuối cùng và không cho phép chú thích // hoặc /* */. Trong trường hợp này, tốt hơn là thực hiện Sửa chữa JSON trước, sau đó định dạng.

Nó có phù hợp để gỡ lỗi API và xem các phản hồi nhật ký không?

Chắc chắn rồi. Các phản hồi API, dữ liệu Webhook, nhật ký phân tích và đoạn cấu hình thường cần định dạng trước khi khắc phục sự cố. Công cụ cũng hỗ trợ chỉnh sửa trực quan chế độ xem cây JSON, chế độ xem bản đồ tư duy và chuyển đổi mã sang 13 ngôn ngữ lập trình, giúp bạn nhanh chóng hiểu cấu trúc dữ liệu.

Tôi có thể chuyển đổi JSON thành các giao diện TypeScript hoặc lớp Java không?

Có. Công cụ hỗ trợ chuyển đổi JSON thành TypeScript/Java/Python/Go/Rust/Swift/Kotlin/C#/C++/PHP/MySQL/YAML/XML — tổng cộng 13 định dạng. Tạo các cấu trúc mã tương ứng chỉ với một cú nhấp chuột, hoàn hảo để nhanh chóng tạo các mô hình dữ liệu phía trước và phía sau từ các phản hồi API.

Dữ liệu JSON đã định dạng có được tải lên máy chủ không?

Không. Tất cả định dạng, xác thực, nén và chuyển đổi mã chạy hoàn toàn cục bộ trong trình duyệt của bạn. Dữ liệu không bao giờ được tải lên bất kỳ máy chủ nào. An toàn ngay cả khi xử lý các phản hồi API chứa bí mật, mã thông báo hoặc quyền riêng tư của người dùng. Dữ liệu sẽ bị xóa khi bạn đóng trang.

Nó có thể xử lý các tệp JSON lớn không?

Có. Công cụ sử dụng kết xuất cuộn ảo và phân tích cú pháp nền Web Worker. Các tệp JSON vài megabyte có thể được định dạng và duyệt mượt mà mà không làm đóng băng trang. Đối với các tệp rất lớn, chúng tôi khuyên bạn nên tải trực tiếp tệp JSON thay vì dán, để hiệu suất ổn định hơn.

Nén JSON (Minify) được sử dụng để làm gì?

Nén loại bỏ tất cả các khoảng trắng và xuống dòng không cần thiết khỏi JSON, tạo ra kết quả một dòng nhỏ gọn nhất. Điều này làm giảm đáng kể kích thước, tiết kiệm băng thông và lưu trữ, và thường được sử dụng cho truyền API, ghi cấu hình, nhúng trong mã hoặc làm biến môi trường. JSON đã nén về mặt ngữ nghĩa giống hệt JSON đã định dạng; nó chỉ là không thể đọc được bởi con người.

Chế độ xem cây JSON và Chế độ xem bản đồ tư duy là gì?

Chế độ xem cây hiển thị JSON dưới dạng cây phân cấp có thể thu gọn, hỗ trợ mở rộng/thu gọn nút và chỉnh sửa trường trực quan, phù hợp để duyệt dữ liệu lồng sâu. Chế độ xem bản đồ tư duy trình bày cấu trúc dưới dạng các nút được kết nối, hiển thị trực quan các mối quan hệ cha-con giữa các đối tượng và mảng, phù hợp để lập bản đồ cấu trúc dữ liệu phức tạp hoặc thực hiện bài thuyết trình.

Sau khi định dạng, tôi có thể sắp xếp theo tên khóa không?

Có. Công cụ cung cấp tính năng sắp xếp khóa hỗ trợ sắp xếp lại các khóa đối tượng theo thứ tự bảng chữ cái tăng dần hoặc giảm dần, thuận tiện cho việc so sánh sự khác biệt giữa hai JSON, chuẩn hóa thứ tự trường tệp cấu hình hoặc hiển thị các trường API theo thứ tự cố định để Xem lại mã.

Tôi có thể chia sẻ kết quả đã định dạng với đồng nghiệp không?

Có. Công cụ hỗ trợ nén và mã hóa nội dung JSON hiện tại vào URL để tạo liên kết có thể chia sẻ. Người nhận có thể mở liên kết để xem cùng một dữ liệu mà không cần tải lên máy chủ, tuyệt vời để cộng tác nhanh chóng trong việc khắc phục sự cố API hoặc tái tạo các tình huống dữ liệu.

Giới thiệu về JSON và Định dạng JSON

JSON (JavaScript Object Notation) là một định dạng trao đổi dữ liệu nhẹ sử dụng các cặp khóa-giá trị và mảng để biểu diễn dữ liệu. Do tính đơn giản, dễ đọc và đa ngôn ngữ, nó đã trở thành tiêu chuẩn thực tế cho Web API, tệp cấu hình, nhật ký và truyền dữ liệu phía trước-phía sau. JSON chỉ có sáu loại giá trị cơ bản: chuỗi, số, boolean, null, đối tượng và mảng. Các quy tắc cú pháp được định nghĩa chung bởi các tiêu chuẩn RFC 8259 và ECMA-404.

Định dạng JSON (còn được gọi là làm đẹp JSON) là quá trình thêm thụt lề và xuống dòng thích hợp vào JSON nén mà không thay đổi nội dung dữ liệu, sắp xếp nó thành định dạng có cấu trúc phân cấp dễ đọc cho con người. JSON trong các phản hồi API, nhật ký và lưu trữ thường được nén thành một dòng, khiến việc đọc trực tiếp rất khó khăn. Sau khi định dạng, bạn có thể thấy rõ các đối tượng lồng nhau, phần tử mảng và giá trị của mỗi trường.

Thao tác ngược lại với định dạng là nén JSON (Minify), loại bỏ tất cả các ký tự khoảng trắng không cần thiết, chuyển đổi JSON trở lại dạng một dòng nhỏ gọn nhất để giảm kích thước truyền. Định dạng và nén là một cặp thao tác nghịch đảo; cả hai đều không thay đổi ngữ nghĩa JSON, chỉ ảnh hưởng đến khả năng đọc và kích thước.

Xác thực JSON là kiểm tra xem một đoạn văn bản có tuân thủ các quy tắc cú pháp JSON hay không. Các mẫu không hợp lệ phổ biến bao gồm: sử dụng dấu ngoặc đơn thay vì dấu ngoặc kép, các khóa không có dấu ngoặc kép, có dấu phẩy cuối sau phần tử cuối cùng, chứa chú thích // hoặc /* */ và dấu ngoặc hoặc dấu ngoặc kép đóng không chính xác. Không ai trong số này là JSON hợp lệ và định dạng sẽ báo lỗi — trong trường hợp này, bạn nên sử dụng công cụ Sửa chữa JSON trước, sau đó định dạng.

Dựa trên định dạng, công cụ này cũng cung cấp Chế độ xem cây, Chế độ xem bản đồ tư duy và khả năng chuyển đổi mã sang 13 ngôn ngữ lập trình: bạn có thể thu gọn JSON thành cây phân cấp trực quan để duyệt các cấu trúc sâu, hoặc chuyển đổi JSON phản hồi API thành các giao diện TypeScript, lớp Java, từ điển Python hoặc câu lệnh tạo bảng cơ sở dữ liệu chỉ với một cú nhấp chuột để sử dụng trực tiếp trong phát triển. Tất cả xử lý được thực hiện cục bộ trong trình duyệt; dữ liệu không bao giờ được tải lên máy chủ.

Bảng tham chiếu nhanh Loại dữ liệu JSON

JSON chỉ có sáu loại giá trị. Hiểu chúng giúp bạn nhanh chóng xác định xem dữ liệu có hợp lệ không và cách ánh xạ đến các loại ngôn ngữ lập trình.

LoạiVí dụMô tả
string"hello"Chuỗi, phải sử dụng dấu ngoặc kép, hỗ trợ ký tự thoát và mã hóa Unicode \uXXXX.
number25 / 3.14 / -1e5Số, hỗ trợ số nguyên, số thập phân và ký hiệu khoa học; được phân tích cú pháp dưới dạng số thực dấu phẩy động độ chính xác kép, không phân biệt giữa số nguyên và số thực.
booleantrue / falseBoolean, chỉ có thể là true hoặc false viết thường.
nullnullGiá trị rỗng, biểu thị không có dữ liệu; phải viết thường, khác với chuỗi rỗng hoặc 0.
object{"k": "v"}Đối tượng, một tập hợp các cặp khóa-giá trị được bọc trong dấu ngoặc nhọn; các khóa phải là chuỗi dấu ngoặc kép.
array[1, 2, 3]Mảng, một danh sách các giá trị có thứ tự được bọc trong dấu ngoặc vuông; các phần tử có thể có các loại khác nhau.

Bảng ký tự thoát chuỗi JSON

Các ký tự sau trong chuỗi JSON phải được thoát bằng dấu gạch chéo ngược; nếu không, phân tích cú pháp sẽ thất bại.

ThoátÝ nghĩa
\"Dấu ngoặc kép
\\Dấu gạch chéo ngược
\/Dấu gạch chéo (thoát tùy chọn)
\nXuống dòng
\rVề đầu dòng
\tTab
\bLùi lại
\fVào trang
\uXXXXKý tự Unicode được biểu thị bằng bốn chữ số thập lục phân

Bảng tham chiếu các mẫu không hợp lệ phổ biến

Dưới đây là các mẫu JSON không hợp lệ thường gặp và dạng hợp lệ của chúng, để tham khảo khi định dạng báo lỗi.

Không hợp lệHợp lệGhi chú
{name: "a"}{"name": "a"}Các khóa phải sử dụng dấu ngoặc kép
{'name': 'a'}{"name": "a"}Các chuỗi phải sử dụng dấu ngoặc kép, không thể sử dụng dấu ngoặc đơn
{"a": 1,}{"a": 1}Không cho phép dấu phẩy cuối
{"a": 1} // chú thích{"a": 1}JSON không hỗ trợ chú thích
{"a": undefined}{"a": null}Không có undefined; sử dụng null cho giá trị rỗng
{"a": .5}{"a": 0.5}Số thập phân phải có phần nguyên 0

Code Examples

JavaScript: Sử dụng JSON.stringify để định dạng JSON

javascript

Tham số thứ ba của JSON.stringify tích hợp sẵn trong trình duyệt và Node.js chỉ định thụt lề, là cách lập trình phổ biến nhất để định dạng JSON.

const data = { name: '张三', age: 25, tags: ['a', 'b'] };

// 美化:第三个参数为缩进空格数(也可传 '\t' 使用 Tab)
const pretty = JSON.stringify(data, null, 2);
console.log(pretty);

// 压缩:不传第三个参数即得到最紧凑单行
const mini = JSON.stringify(data);
console.log(mini); // {"name":"张三","age":25,"tags":["a","b"]}

// 解析字符串为对象(会校验语法,非法时抛出 SyntaxError)
const obj = JSON.parse(pretty);

Python: Sử dụng mô-đun json để định dạng

python

Thư viện chuẩn Python json sử dụng các tham số indent và ensure_ascii để kiểm soát thụt lề và hiển thị ký tự Trung Quốc.

import json

data = {"name": "张三", "age": 25, "tags": ["a", "b"]}

# 美化输出,indent 指定缩进,ensure_ascii=False 保留中文
pretty = json.dumps(data, indent=2, ensure_ascii=False)
print(pretty)

# 压缩输出:用最紧凑的分隔符
mini = json.dumps(data, separators=(",", ":"), ensure_ascii=False)
print(mini)

# 解析字符串(非法时抛出 json.JSONDecodeError)
obj = json.loads(pretty)

Dòng lệnh: Sử dụng jq để định dạng JSON

bash

jq là một công cụ mạnh mẽ để xử lý JSON trong dòng lệnh, cho phép làm đẹp, nén và trích xuất trường nhanh chóng.

# 美化(默认 2 空格缩进)
cat data.json | jq '.'

# 压缩为单行
cat data.json | jq -c '.'

# 提取指定字段
cat data.json | jq '.user.name'

# curl 返回结果直接管道美化
curl -s https://api.example.com/user | jq '.'

Privacy & Security

Tất cả định dạng JSON, xác thực, nén và chuyển đổi mã trong công cụ này chạy hoàn toàn cục bộ trong trình duyệt của bạn. Dữ liệu không bao giờ được tải lên bất kỳ máy chủ nào, cũng không được ghi lại hoặc lưu đệm từ xa. An toàn ngay cả khi xử lý các phản hồi API chứa bí mật, mã thông báo hoặc thông tin người dùng. Dữ liệu sẽ bị xóa khi bạn đóng hoặc làm mới trang.

Authoritative References

Troubleshooting

Unexpected token ... trong JSON (ký tự không mong đợi / lỗi cú pháp)

Rất có thể là do sử dụng dấu ngoặc đơn, các khóa không có dấu ngoặc kép hoặc chứa chú thích // hoặc /* */. Đặc tả JSON yêu cầu tất cả các chuỗi và khóa phải sử dụng dấu ngoặc kép và không hỗ trợ chú thích. Vui lòng chuyển sang dấu ngoặc kép và xóa chú thích, hoặc sử dụng công cụ Sửa chữa JSON trước.

Unexpected end of JSON input (nội dung kết thúc bất ngờ)

Thường là do dấu ngoặc {} hoặc [] hoặc dấu ngoặc kép đóng không chính xác, dẫn đến JSON không hoàn chỉnh. Kiểm tra xem các cấu trúc có được đóng cặp chính xác không. Khi dán các phản hồi API, bạn có thể đã chỉ sao chép một phần nội dung — đảm bảo bạn sao chép hoàn toàn.

Dấu phẩy cuối gây ra lỗi (Trailing comma)

JSON không cho phép dấu phẩy sau phần tử cuối cùng của đối tượng hoặc mảng; ví dụ {"a":1,} hoặc [1,2,] là không hợp lệ. Xóa dấu phẩy thừa. Các đối tượng JavaScript cho phép dấu phẩy cuối, nhưng JSON thì không — hãy đặc biệt cẩn thận khi sao chép từ mã.

Ký tự Trung Quốc hoặc ký tự đặc biệt hiển thị dưới dạng \uXXXX

Đây là ký hiệu thoát Unicode của JSON, về bản chất là hợp lệ và vẫn có thể được phân tích cú pháp bình thường sau khi định dạng. Nếu bạn muốn hiển thị tiếng Trung trực tiếp, hãy tắt tính năng thoát ở phía tạo (ví dụ: ensure_ascii=False của Python, tắt thoát HTML của Go).

Mất độ chính xác số lớn (ví dụ: ID trở thành ký hiệu khoa học hoặc số không ở cuối)

Số JSON được phân tích cú pháp dưới dạng số thực dấu phẩy động độ chính xác kép IEEE 754. Các số nguyên vượt quá 2^53 (ví dụ: ID tuyết, số đơn hàng) sẽ mất độ chính xác. Giải pháp là bọc các số nguyên lớn dưới dạng chuỗi trong quá trình truyền, tức là "id": "9007199254740993", để tránh bị phân tích cú pháp thành số.

Sau khi định dạng, muốn chuyển đổi lại thành một dòng

Chỉ cần chuyển sang 'Nén / Minify' để chuyển đổi JSON nhiều dòng đã làm đẹp trở lại thành một dòng nhỏ gọn nhất để truyền API, ghi cấu hình hoặc nhúng trong mã. Nén và làm đẹp là các thao tác nghịch đảo và không thay đổi nội dung dữ liệu.