Menu

Định dạng JSON

Định dạng, kiểm tra và khám phá JSON với dạng cây trực tiếp.

Tác giả Nethanel Bar, Co-founder & CEO

Cập nhật lần cuối

Sẵn sàng học code thật sự?

Coddy dạy bạn bằng cách viết code thật ngay trên trình duyệt: bài học tương tác, phản hồi tức thì và AI hỗ trợ khi bạn bị kẹt.

JSON formatter là gì?

JSON formatter (còn gọi là JSON beautifier hay pretty-printer) nhận JSON viết liền hoặc lộn xộn và biến nó thành dữ liệu có thụt lề, dễ đọc. Đây là một trong những công cụ lập trình được dùng nhiều nhất: khi xem response của API, đọc tệp cấu hình, gỡ lỗi log, so sánh dữ liệu test và chuyển dữ liệu giữa code frontend và backend.

JSON là định dạng nghiêm ngặt: khóa phải nằm trong dấu ngoặc kép, chuỗi phải nằm trong dấu ngoặc kép, dấu phẩy phải đặt đúng chỗ, và mọi { hoặc [ mở ra đều phải được đóng lại. Formatter giúp bạn thấy rõ cấu trúc đó, còn trình kiểm tra tích hợp cho bạn biết chính xác cú pháp hỏng ở đâu nếu có lỗi.

JSON là viết tắt của JavaScript Object Notation. Dù bắt nguồn từ JavaScript, gần như mọi ngôn ngữ lập trình đều hỗ trợ sẵn việc đọc và ghi JSON, nên nó trở thành cách mặc định để trao đổi dữ liệu có cấu trúc trên web.

Bạn sẽ học được gì khi dùng công cụ

  • Đối tượng dùng {} cho các trường có tên, mảng dùng [] cho danh sách có thứ tự, và cả hai đều có thể lồng vào nhau với độ sâu bất kỳ.
  • JSON đã làm đẹp và JSON đã thu gọn là *cùng một dữ liệu*: khoảng trắng chỉ thay đổi độ dễ đọc, không thay đổi ý nghĩa. Máy chủ thường trả về JSON thu gọn để tiết kiệm dung lượng.
  • Giá trị JSON chỉ có sáu kiểu: chuỗi, số, boolean, null, đối tượng và mảng. Không có undefined, không có hàm và không có chú thích.
  • Lỗi kiểm tra thường chỉ vào gần chỗ có vấn đề, nhưng lỗi thật (một dấu ngoặc chưa đóng, thiếu một dấu ngoặc kép) có thể nằm sớm hơn vài ký tự.

Cách định dạng JSON từng bước

  1. Dán JSON vào ô nhập

    Sao chép JSON từ response của API, tệp log hoặc tệp cấu hình rồi dán vào bên trái. Formatter nhận cả đầu vào đã thu gọn lẫn đầu vào mới định dạng một phần.

  2. Chọn độ rộng thụt lề

    Hai dấu cách là kiểu phổ biến nhất; bốn dấu cách cũng được dùng rộng rãi. Chọn kiểu khớp với quy ước sẵn có của dự án.

  3. Đọc kết quả kiểm tra

    Nếu JSON hợp lệ, kết quả đã định dạng hiện ở bên phải. Nếu không, thông báo lỗi cho bạn biết dòng và ký tự nơi việc phân tích thất bại.

  4. Khám phá chế độ xem dạng cây

    Dùng cây thu gọn được để gập các đối tượng và mảng lồng sâu. Đây là cách nhanh nhất để hiểu cấu trúc của một response API lạ.

  5. Sao chép hoặc thu gọn kết quả

    Sao chép phiên bản đã làm đẹp vào code hoặc tài liệu, hoặc thu gọn lại thành một dòng để lưu trữ và truyền qua mạng.

Tra cứu nhanh cú pháp JSON

Toàn bộ các thành phần cơ bản của JSON. Mọi thứ ngoài danh sách này đều không phải JSON hợp lệ. Đặc tả: RFC 8259 và ECMA-404.

TokenÝ nghĩaVí dụ
{ }Đối tượng: tập hợp các cặp khóa/giá trị{"name": "Maya"}
[ ]Mảng: danh sách giá trị có thứ tự[1, 2, 3]
"..."Chuỗi: luôn nằm trong dấu ngoặc kép"hello"
NumberSố nguyên hoặc số thực, không có dấu ngoặc kép, không có + ở đầu42, -3.14
true / falseGiá trị boolean, viết thườngtrue
nullGiá trị rỗng hoặc không cónull
:Dấu phân cách giữa khóa và giá trị"id": 7
,Dấu phân cách giữa các phần tử, không bao giờ đặt ở cuối[1, 2, 3]

Ví dụ JSON để thử

Làm đẹp một response API điển hình

Input
{"user":{"id":7,"name":"Maya"},"skills":["HTML","JavaScript"]}
Đã định dạng
{  "user": {    "id": 7,    "name": "Maya"  },  "skills": ["HTML", "JavaScript"]}

Sau khi định dạng, đối tượng user lồng bên trong và mảng skills dễ đọc hơn nhiều. Dữ liệu giữ nguyên, chỉ có khoảng trắng thay đổi.

Bắt lỗi dấu phẩy thừa ở cuối

Không hợp lệ
{  "name": "Coddy",  "active": true,}

JSON không cho phép dấu phẩy thừa sau thuộc tính cuối cùng. Trình kiểm tra sẽ báo lỗi ở dấu } đóng. Đây là một trong những lỗi phổ biến nhất khi chép cú pháp đối tượng JavaScript sang JSON.

So sánh các kiểu giá trị

Input
{  "count": 3,  "countText": "3",  "enabled": true}

3 là số, "3" là chuỗi, còn true là boolean: ba kiểu JSON khác nhau. API thường báo lỗi khi cấu trúc đúng nhưng kiểu của một giá trị lại sai.

Đọc một response lồng sâu

Input
{  "data": {    "orders": [      { "id": 101, "items": [{ "sku": "A", "qty": 2 }] },      { "id": 102, "items": [] }    ]  }}

Dùng chế độ xem dạng cây để gập data.orders và xem cấu trúc từng cấp một. Mảng đối tượng lồng nhau là mẫu phổ biến nhất trong response REST.

Lỗi JSON thường gặp

  • Dùng dấu nháy đơn thay vì dấu ngoặc kép quanh khóa hoặc chuỗi: JSON chỉ cho phép dấu ngoặc kép.
  • Coi JSON như đối tượng JavaScript: chú thích, hàm và undefined không hợp lệ trong JSON, còn dấu phẩy thừa ở cuối sẽ gây lỗi phân tích.
  • Quên rằng số trong JSON không được có + ở đầu, không có số 0 ở đầu (trừ chính 0), và không được đặt trong dấu ngoặc kép nếu bạn thật sự muốn kiểu số.
  • Dán token, dữ liệu khách hàng hoặc khóa bí mật production vào công cụ có tải đầu vào lên máy chủ. Formatter của Coddy chạy cục bộ nên an toàn, nhưng hãy luôn kiểm tra trước khi dùng trang web của bên thứ ba.

Câu hỏi thường gặp về JSON formatter

JSON là gì?

JSON (JavaScript Object Notation) là định dạng văn bản gọn nhẹ cho dữ liệu có cấu trúc. JSON dùng các cặp khóa và giá trị cùng mảng, được gần như mọi ngôn ngữ lập trình hỗ trợ, nên là lựa chọn mặc định cho web API, tệp cấu hình và payload của tin nhắn.

Làm sao để định dạng JSON?

Dán JSON vào một JSON formatter, chọn độ rộng thụt lề (thường là 2 dấu cách), và công cụ sẽ xuất lại cùng dữ liệu đó với xuống dòng và thụt lề. Hầu hết formatter cũng kiểm tra cú pháp ngay trong cùng bước.

JSON formatter và JSON validator khác nhau thế nào?

Formatter chuyển JSON hợp lệ sang bố cục dễ đọc hơn. Validator kiểm tra xem cú pháp JSON có hợp lệ ngay từ đầu hay không. Một công cụ JSON tốt làm được cả hai.

Làm đẹp JSON có làm thay đổi dữ liệu không?
Không. Làm đẹp chỉ thêm thụt lề và xuống dòng, còn khóa, mảng, chuỗi, số, boolean và giá trị null vẫn giữ nguyên. Thu gọn lại sẽ cho ra đúng dạng gốc gọn nhẹ để truyền qua mạng.
Tại sao JSON của tôi bị lỗi dù trông giống đối tượng JavaScript?
JSON nghiêm ngặt hơn cú pháp đối tượng JavaScript. Khóa và chuỗi phải dùng dấu ngoặc kép, JSON không được chứa chú thích, và không cho phép dấu phẩy thừa ở cuối, dấu nháy đơn hay undefined.
Lập trình viên dùng JSON ở đâu mỗi ngày?
JSON có mặt ở khắp nơi: response REST và GraphQL, body của request, tệp cấu hình (package.json, tsconfig.json), metadata của package, dòng log, local storage của trình duyệt và dữ liệu test.

Tìm hiểu thêm

Công cụ lập trình khác

Hình minh họa các ngôn ngữ lập trình của Coddy

Học lập trình cùng Coddy

Bắt đầu