Bạn copy response từ Postman rồi paste vào file — tất cả là một dòng dài, không đọc nổi. Hoặc đang sửa tay file package.json hay tsconfig.json, ứng dụng không chạy được và VS Code chỉ gạch đỏ ở tận dòng cuối, chẳng cho biết lỗi thật nằm ở đâu. JSON nghiêm hơn nhiều người nghĩ — dấu phẩy cuối cùng sau phần tử cuối (trailing comma), ngoặc nhọn thiếu hoặc dư, chuỗi dùng nháy đơn thay nháy đôi đều đủ làm parser từ chối toàn bộ file.

Bài này đi thẳng vào những gì hay cần nhất: làm đẹp JSON để đọc được, validate và tìm lỗi để sửa đúng chỗ, và chuyển đổi qua lại với YAML khi config yêu cầu.

Format nhanh: dán JSON vào công cụ format json, nhấn "Beautify" là có ngay JSON thụt đầu dòng đẹp và thông báo lỗi cú pháp nếu có. Không cần cài đặt, không cần đăng nhập.

Vì sao JSON lại "nhạy cảm" hơn YAML hay XML?

JSON không cho phép comment, không cho phép trailing comma, và mọi chuỗi phải dùng nháy đôi — ba điều này là nguồn gốc của phần lớn lỗi khi sửa JSON bằng tay.

So sánh nhanh ba định dạng config phổ biến:

Tính năngJSONYAMLXMLCommentKhôngCó (#)Có (<!-- -->)Trailing commaKhông cho phépKhông áp dụngKhông áp dụngKiểu chuỗiPhải nháy đôi "Linh hoạtNội dung thẻDễ đọc/viết tayTrung bìnhTốt hơnKhó hơnHỗ trợ rộngRất rộngRộngRất rộng (legacy)

Khi cần giải thích hay ghi chú trong file config, nhiều người viết thêm comment kiểu // ghi chú vào JSON rồi lấy làm lạ vì parse lỗi. Nếu cần comment trong config, hãy cân nhắc dùng YAML — và bước 2 dưới đây giúp bạn chuyển đổi dễ dàng.

4 bước format, validate và chuyển đổi JSON

Bước 1 — Làm đẹp và validate JSON

Dán JSON bất kỳ — dù là một dòng hay đã có cấu trúc nhưng lộn xộn — rồi nhấn "Beautify". Công cụ vừa format vừa kiểm tra cú pháp: nếu có lỗi, nó báo chính xác vị trí thay vì chỉ nói "invalid JSON".

👉 Làm đẹp: công cụ format json (dán vào, chọn "Beautify" hoặc "Validate", xem kết quả tức thì).

Ví dụ: API trả về {"id":1,"name":"Minh","tags":["dev","backend"]} — sau khi beautify:

{
  "id": 1,
  "name": "Minh",
  "tags": [
    "dev",
    "backend"
  ]
}

Lỗi hay gặp và cách nhận biết:

  • Trailing comma: {"name": "Minh",} — dấu phẩy thừa sau phần tử cuối. Lỗi thường hiện là "Unexpected token }".

  • Nháy đơn thay nháy đôi: {'name': 'Minh'} — JSON chỉ chấp nhận nháy đôi, nháy đơn là lỗi ngay.

  • Thiếu ngoặc đóng: một { không có } tương ứng. Lỗi "Unexpected end of JSON input".

  • Comment kiểu // hay /* */: JSON không hỗ trợ comment — xóa hết trước khi parse.

Bước 2 — Chuyển YAML sang JSON (hoặc ngược lại)

Nhiều công cụ config hiện đại (Kubernetes, GitHub Actions, Docker Compose) dùng YAML, trong khi code thường đọc JSON. Việc chuyển qua lại giữa hai định dạng này mà không mất dữ liệu rất hay cần khi làm việc với DevOps hoặc CI/CD.

👉 Chuyển định dạng: công cụ chuyển yaml json (hỗ trợ YAML ↔ JSON hai chiều).

Ví dụ: file cấu hình YAML:

server:
  host: app.example.vn
  port: 4100
  debug: false

Sau khi chuyển sang JSON:

{
  "server": {
    "host": "app.example.vn",
    "port": 4100,
    "debug": false
  }
}

Lỗi hay gặp:

  • YAML dùng tab thay vì space: YAML không cho phép tab để thụt đầu dòng — chỉ dùng space. Nếu file YAML có tab, convert sẽ thất bại.

  • Comment trong YAML bị mất khi sang JSON: JSON không có cú pháp comment, nên mọi dòng # ... trong YAML sẽ biến mất sau khi convert. Đây là hành vi đúng, nhưng cần lưu ý nếu comment có giá trị tài liệu.

Bước 3 — Khi API nguồn trả về XML (đọc trước, convert sau)

Một số API legacy hoặc SOAP trả về XML. Trước khi convert sang JSON để code xử lý tiếp, hãy format và kiểm tra XML đó trước để chắc chắn cấu trúc rõ ràng.

👉 Format XML trước: công cụ format xml (làm đẹp XML, kiểm tra cú pháp trước khi convert).

Hiểu rõ cấu trúc XML giúp bạn viết code xử lý kết quả convert chính xác hơn — đặc biệt với các trường hợp attribute XML bị map thành key đặc biệt trong JSON (thường là @attributeName).

Bước 4 — Format SQL đi kèm khi debug data

Khi debug JSON chứa câu truy vấn SQL nhúng bên trong (thường gặp trong config query-builder, log của ORM, hoặc API endpoint nhận SQL từ client), format cả SQL cho dễ đọc song song với JSON.

👉 Format SQL: công cụ format sql (làm đẹp câu query có thụt đầu dòng, từ khóa viết hoa).

Ví dụ: JSON response log của ORM chứa field "query": "select * from users where id=1 and status='active' order by created_at desc limit 10" — copy phần chuỗi query đó ra, format SQL cho dễ đọc để confirm câu truy vấn đúng logic hay không.

Format xong thì kết quả ra sao?

  • Thời gian: tức thì — JSON vài trăm KB vẫn beautify trong chưa tới 1 giây.

  • Sau khi validate không lỗi: bạn có thể tự tin dùng JSON đó trong code hoặc deploy config. Lỗi cú pháp JSON thường gây crash im lặng ở production — bắt sớm ở đây tiết kiệm thời gian debug rất nhiều.

  • Khi nào dùng từng bước: debug API response → Bước 1; làm việc giữa YAML và JSON → Bước 2; nguồn là XML → Bước 3; debug có SQL nhúng → Bước 4.

Câu hỏi thường gặp (FAQ)

Vì sao JSON.parse() trong JavaScript không báo rõ lỗi ở dòng mấy? JavaScript chỉ ném ra SyntaxError: Unexpected token với vị trí ký tự, không phải dòng. Paste JSON vào công cụ online sẽ cho biết chính xác dòng và cột bị lỗi, dễ tìm hơn nhiều.

JSON5 là gì? Có dùng được ở đây không? JSON5 là một phần mở rộng không chính thức cho phép trailing comma, comment kiểu JS và nháy đơn. Nhiều bundler như Webpack và Vite hỗ trợ JSON5 cho file config. Tuy nhiên, công cụ format JSON thông thường không hiểu JSON5 — nếu đang dùng JSON5, hãy xem tài liệu riêng của công cụ đó.

Chuyển JSON sang YAML có mất dữ liệu không? Không mất dữ liệu, nhưng có một số điểm cần lưu ý: số nguyên và boolean trong JSON được giữ nguyên kiểu trong YAML; chuỗi rỗng "" có thể thành ~ hoặc null tùy công cụ — kiểm tra lại sau khi convert.

Có thể dùng JSON để lưu cấu hình thay YAML không? Hoàn toàn được — nhiều công cụ hỗ trợ cả hai. JSON có ưu điểm là hỗ trợ rộng hơn và không bị lỗi do indent; YAML dễ đọc hơn khi config dài và cho phép comment. Chọn theo quy ước của team hoặc yêu cầu của công cụ bạn đang dùng.


BKNS Tools — bộ công cụ lập trình miễn phí cho developer Việt. Format JSON · Chuyển YAML/JSON · Format XML · Format SQL — không cần đăng nhập.