Hướng dẫn

JSON là gì? Hướng dẫn bằng ngôn ngữ đơn giản kèm ví dụ

JSON (JavaScript Object Notation) là định dạng văn bản đơn giản để ghi lại dữ liệu có cấu trúc — những thứ như một khách hàng, một đơn hàng hay một danh sách sản phẩm — dưới dạng các cặp tên và giá trị. Con người dễ đọc và chương trình dễ tạo ra cũng như phân tích. Khi các ứng dụng và dịch vụ trao đổi dữ liệu qua web, JSON là định dạng phổ biến nhất với khoảng cách rất xa.

Vì sao JSON quan trọng khi xây dựng với AI

Bạn sẽ gặp JSON liên tục, ngay cả khi không bao giờ viết mã:

  • API. Khi các màn hình của ứng dụng tải dữ liệu từ phần backend, hoặc backend của bạn gọi dịch vụ thanh toán, email hay AI, dữ liệu thường được truyền đi dưới dạng JSON. Xem API là gì.
  • Tệp cài đặt. Nhiều tệp cấu hình dự án là JSON — ví dụ package.json, liệt kê các thư viện phụ thuộc của một dự án JavaScript.
  • Cơ sở dữ liệu. Postgres có thể lưu JSON trong một cột (kiểu jsonb) cho dữ liệu không vừa với các hàng và cột gọn gàng. Xem Postgres là gì.
  • Đầu ra của AI. Khi muốn một mô hình AI trả về thứ mà chương trình có thể dùng — một danh sách thẻ, các trường được trích xuất từ hóa đơn — bạn thường yêu cầu JSON.
  • Thông báo lỗi và nhật ký. Nhiều lỗi được trả về dưới dạng JSON, và đọc chúng thường là cách nhanh nhất để biết điều gì đã sai.

Biết đọc JSON giúp bạn kiểm tra thực sự ứng dụng đã nhận được gì, phát hiện một trường bị thiếu và mô tả vấn đề một cách chính xác cho công cụ xây dựng AI của bạn.

Một ví von đời thường

Hãy nghĩ về một tờ biểu mẫu giấy: Họ tên: ____, Điện thoại: ____, Nhận bản tin: ☐ có ☐ không. Mỗi mục là một nhãn kèm giá trị bên cạnh. JSON chính là biểu mẫu đó được viết thành văn bản, theo một bố cục nghiêm ngặt mà máy tính có thể đọc mà không phải đoán. Và giống như biểu mẫu, JSON có thể có các phần lồng bên trong phần khác (một khối địa chỉ gồm đường, thành phố và mã bưu điện) và các danh sách (nhiều số điện thoại).

JSON trông như thế nào

Đây là một lịch đặt hẹn trong JSON:

{
  "id": 5001,
  "customer": "Lena Park",
  "service": "Haircut",
  "startsAt": "2026-10-03T14:00:00Z",
  "price": 35.5,
  "paid": false,
  "notes": null,
  "extras": ["beard trim", "hot towel"],
  "contact": {
    "email": "lena@example.com",
    "phone": "+44 20 7946 0000"
  }
}

Cách đọc:

  • Dấu ngoặc nhọn { } bao quanh một đối tượng — một tập hợp các cặp tên và giá trị.
  • Mỗi cặp có dạng "tên": giá trị, phân cách bằng dấu phẩy.
  • Dấu ngoặc vuông [ ] bao quanh một mảng — một danh sách có thứ tự.
  • Đối tượng và mảng có thể nằm lồng trong nhau, như contact và extras.

Sáu loại giá trị

JSON chỉ có sáu loại giá trị. Danh sách nhỏ này là một phần lớn lý do nó hoạt động được ở mọi nơi.

LoạiVí dụGhi chú
Chuỗi (văn bản)"Lena Park"Luôn dùng dấu ngoặc kép
Số35.5, -2, 1e6Không có dấu ngoặc; không có ký hiệu tiền tệ
Booleantrue, falseChữ thường, không có dấu ngoặc
Nullnull“Không có giá trị”
Đối tượng{ "city": "Leeds" }Các giá trị có tên
Mảng[1, 2, 3]Danh sách có thứ tự; các phần tử có thể thuộc bất kỳ loại nào

JSON không có kiểu ngày. Ngày được viết dưới dạng chuỗi, thường theo định dạng ISO 8601 như ví dụ trên (2026-10-03T14:00:00Z, trong đó Z nghĩa là UTC). Thống nhất định dạng này giúp tránh một loạt lỗi về múi giờ.

Các quy tắc nghiêm ngặt (nơi phát sinh lỗi)

JSON khắt khe hơn vẻ ngoài của nó. Tất cả những dòng sau đều không hợp lệ:

{ name: "Lena" }            ← khóa không có dấu ngoặc kép
{ 'name': 'Lena' }          ← dấu nháy đơn
{ "a": 1, "b": 2, }         ← dấu phẩy thừa ở cuối
{ "a": 1 "b": 2 }           ← thiếu dấu phẩy
{ "a": 1 // comment }       ← không được phép có chú thích

Hầu hết các lỗi “Unexpected token” bạn gặp đều thuộc một trong những loại này. Công cụ kiểm tra hoặc định dạng JSON sẽ chỉ ra đúng dòng.

Ví dụ thực tế: JSON đi qua một ứng dụng

Một khách hàng đặt lịch cắt tóc trong ứng dụng tiệm làm đẹp. Đây là nơi JSON xuất hiện:

  1. Biểu mẫu đặt lịch gửi nội dung này tới backend của ứng dụng:
{ "service": "Haircut", "startsAt": "2026-10-03T14:00:00Z", "name": "Lena Park" }
  1. Backend lưu lịch hẹn vào cơ sở dữ liệu và trả về trạng thái 201 Created cùng nội dung:
{ "id": 5001, "status": "confirmed" }
  1. Nếu khung giờ đã có người đặt, nó có thể thay vào đó trả về trạng thái 409 Conflict và:
{ "error": "slot_taken", "message": "That time was just booked. Please pick another." }

Trang đọc status hoặc error và hiển thị đúng thông báo. Nếu trang lại hiện màn hình trống, mở công cụ dành cho nhà phát triển của trình duyệt (tab Network) sẽ cho bạn thấy đúng JSON này — thường là manh mối nhanh nhất để biết điều gì đã hỏng.

Thuật ngữ quan trọng

Thuật ngữNghĩa
Khóa (Key)Tên trong một cặp tên và giá trị, như "email".
Phân tích (Parse)Chuyển văn bản JSON thành dữ liệu mà chương trình có thể dùng.
Tuần tự hóa (Serialize / stringify)Chuyển dữ liệu thành văn bản JSON để gửi hoặc lưu.
PayloadDữ liệu được gửi trong một yêu cầu hoặc phản hồi.
SchemaMô tả hình dạng dữ liệu nên có — những trường nào, kiểu gì. JSON Schema là một cách chuẩn để viết mô tả này.
JSONBKiểu cột JSON nhị phân của Postgres, có thể đánh chỉ mục và truy vấn.
NDJSON / JSON LinesMỗi dòng là một đối tượng JSON, thường dùng cho nhật ký và truyền dữ liệu liên tục.

Những hiểu lầm thường gặp

  • “JSON là JavaScript.” Nó lấy cú pháp từ JavaScript, nhưng không phụ thuộc vào ngôn ngữ nào; Python, Java, C#, Go và các ngôn ngữ khác đều đọc được.
  • “Số đặt trong dấu ngoặc kép cũng ổn.” "35" là chuỗi, không phải số. Trộn lẫn chúng gây lỗi như "35" + "5" thành "355". Tiền thường nên lưu dưới dạng số xu nguyên (3550) để tránh lỗi làm tròn.
  • “JSON an toàn vì nó chỉ là dữ liệu.” JSON có thể chứa bất cứ thứ gì, kể cả bí mật. Đừng đưa khóa API vào JSON được gửi tới trình duyệt.
  • “Cứ đưa mọi thứ vào một cột JSON.” Tiện cho phần bổ sung linh hoạt, nhưng dữ liệu bạn tìm kiếm, lọc hoặc nối bảng thường nên nằm trong các cột thực sự.
  • “AI luôn trả về JSON hợp lệ.” Mô hình có thể thêm văn bản thừa hoặc làm hỏng định dạng. Nhiều nhà cung cấp có chế độ đầu ra có cấu trúc; mã của bạn vẫn nên kiểm tra những gì nhận được trước khi dùng.

Nên yêu cầu công cụ xây dựng AI của bạn điều gì

  • “Cho tôi xem ví dụ về JSON mà endpoint này trả về.”
  • “Trả về lỗi dưới dạng JSON với mã error và thông báo message dễ đọc với con người.”
  • “Lưu ngày dưới dạng chuỗi ISO 8601 theo UTC và chỉ chuyển sang giờ địa phương khi hiển thị.”
  • “Lưu giá dưới dạng số xu nguyên.”
  • “Kiểm tra JSON đến ở phía máy chủ và từ chối các yêu cầu thiếu trường hoặc sai kiểu.”
  • “Khi gọi mô hình AI, yêu cầu JSON đúng cấu trúc này và kiểm tra trước khi dùng.”

JSON trong Mythex

Bạn không cần tự viết JSON trong Mythex — bạn mô tả điều mình muốn và agent sẽ viết mã gửi và đọc nó. Tuy vậy, nhận ra JSON vẫn hữu ích: khi có gì đó hỏng, dán lỗi JSON vào khung chat sẽ cho agent một manh mối chính xác. Công thức backend REST API trong tài liệu yêu cầu “lỗi JSON rõ ràng” ngay từ đầu, và công thức tích hợp bất kỳ API đề cập đến việc gọi các dịch vụ bên ngoài. Để có bức tranh lớn hơn, xem REST và GraphQL và cách gỡ lỗi ứng dụng do AI xây dựng.

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

JSON là gì, nói đơn giản?

JSON (JavaScript Object Notation) là định dạng văn bản thuần để ghi lại dữ liệu có cấu trúc dưới dạng tên và giá trị, như "name": "Lena". Hầu hết API web dùng nó để gửi dữ liệu qua lại, và nhiều ứng dụng dùng nó cho cài đặt và dữ liệu đã lưu.

JSON có phải là một ngôn ngữ lập trình không?

Không. JSON là một định dạng dữ liệu, không phải ngôn ngữ. Nó không thể làm gì một mình — nó chỉ mô tả dữ liệu. Dù xuất phát từ JavaScript, hầu như mọi ngôn ngữ lập trình đều có thể đọc và ghi JSON.

JSON khác đối tượng JavaScript thế nào?

Chúng trông giống nhau, nhưng JSON nghiêm ngặt hơn. Trong JSON, mọi khóa phải nằm trong dấu ngoặc kép, chuỗi dùng dấu ngoặc kép, không có chú thích, không có dấu phẩy thừa ở cuối, và giá trị chỉ giới hạn ở chuỗi, số, true, false, null, đối tượng và mảng.

Vì sao JSON của tôi báo là không hợp lệ?

Các nguyên nhân thường gặp là dấu phẩy thừa sau phần tử cuối, dùng dấu nháy đơn thay vì ngoặc kép, thiếu dấu phẩy giữa các phần tử, thiếu dấu ngoặc đóng, hoặc có chú thích. Dán nó vào công cụ kiểm tra JSON và nó sẽ chỉ ra đúng dòng.

Mythex · Pricing · Xây dựng mọi thứ với AI · Mẫu website và ứng dụng · So sánh Mythex · Thuật ngữ xây dựng ứng dụng bằng AI · Công cụ miễn phí để xây dựng ứng dụng bằng AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو 简体中文 繁體中文(香港) 繁體中文(台灣)