Serialization
Minh Khoa
Tác giả
🧩 1️⃣ Định nghĩa ngắn gọn
Serialization là quá trình chuyển một đối tượng (object) trong chương trình
→ thành dữ liệu có thể lưu trữ hoặc truyền đi được (chuỗi, file, byte, JSON, v.v.)
Và ngược lại, Deserialization là quá trình chuyển dữ liệu đó trở lại thành object.
💬 Cách nói dễ hiểu:
Serialization = “Đóng gói object thành dữ liệu có thể lưu hoặc gửi đi.”
Deserialization = “Mở gói dữ liệu đó thành object để dùng lại.”
🧱 2️⃣ Ví dụ ngoài đời
- Serialization giống như bạn chụp lại một nhân vật game → lưu vào file
.save. - Deserialization là lúc game load lại file đó → nhân vật xuất hiện đúng như cũ (level, item, HP...).
🧠 3️⃣ Trong lập trình, tại sao cần serialization?
Tình huống Mục đích 💾 Lưu dữ liệu (Save/Load) Ghi object thành file JSON, Binary, XML, v.v. 🌐 Truyền dữ liệu qua mạng Gửi object từ client → server (hoặc ngược lại). ☁️ API / Database / Cloud Chuyển object thành JSON để REST API xử lý. 🧩 Unity Editor Unity serialize dữ liệu để hiển thị & lưu trong scene. 🧠 Cache hoặc file config Lưu tạm cấu hình hoặc dữ liệu gameplay.
⚙️ 4️⃣ Cách hoạt động
Ví dụ với C#:
[System.Serializable]
public class PlayerData {
public string name;
public int level;
public float hp;
}
➕ Serialize (Lưu thành JSON)
PlayerData player = new PlayerData { name = "Na", level = 5, hp = 99.5f };
string json = JsonUtility.ToJson(player);
Debug.Log(json);
Kết quả:
{"name":"Na","level":5,"hp":99.5}
🔄 Deserialize (Đọc lại object)
PlayerData loaded = JsonUtility.FromJson<PlayerData>(json);
Debug.Log(loaded.name); // "Na"
➡️ Từ JSON → lại thành object PlayerData có thể dùng trong code.
🧰 5️⃣ Serialization trong Unity
Unity serialize tất cả dữ liệu trong scene, prefab, hoặc ScriptableObject để:
- Lưu lại giá trị trong Editor.
- Hiển thị trong Inspector.
---