🎯 [Bài học căn bản nhưng cực kỳ quan trọng trong Network Automation]
👉 Nếu bạn đang học lập trình mạng hoặc làm việc với API (đặc biệt là RESTCONF/NETCONF), thì việc hiểu rõ JSON – JavaScript Object Notation là chìa khóa vàng. Đây là cách các thiết bị hiện đại giao tiếp với nhau bằng API thay vì dòng lệnh truyền thống.
JSON là gì?
JSON là một định dạng dữ liệu dạng văn bản được dùng để trao đổi dữ liệu giữa client và server, hay giữa các hệ thống mạng. Nó cực kỳ phổ biến vì:
JSON hoạt động bằng cách tổ chức dữ liệu theo cặp key-value (khóa-giá trị), tương tự như dictionary trong Python hoặc map trong Golang.
📌 Cấu trúc chính của JSON
JSON chỉ dùng 2 cấu trúc chính:
{ "device": { "name": "csr1kv1", "vendor": "cisco", "uptime": "2 days" } }
🔍 Ví dụ 2 – JSON dạng danh sách lồng object:
[ { "hostname": "csr1kv1", "snmp": [ {"name": "public", "permission": "ro"}, {"name": "private", "permission": "rw"} ] } ]
🐍 Làm việc với JSON trong Python
✅ Python hỗ trợ JSON rất tốt thông qua module json:
import json facts = { "device": { "name": "csr1kv1", "uptime": "2 days" } } # Chuyển thành JSON string json_data = json.dumps(facts, indent=4) # In đẹp print(json_data) # Ngược lại: chuyển từ JSON string thành Python dict facts_dict = json.loads(json_data) print(facts_dict["device"]["uptime"]) # output: 2 days
❓ Một số lưu ý thực chiến:
🎯 Ôn tập nhanh
Câu hỏi: Những chuỗi nào là JSON hợp lệ?
Đáp án đúng (✔️):
{"vlan_ids":[100,200,300]} [["csr1kv1", "cisco"], ["csr1kv1", "cisco"]] [{"hostname":"csr1kv", "uptime":"184 days"}]
Câu sai (❌):
'{"vlan_ids":[100,200,300]}' # dấu nháy đơn sai chuẩn
💡 Gợi ý tự học
Bạn có thể truy cập vào các trang như:
📚 Bài tiếp theo trong chuỗi học:
👉 Chúng ta sẽ tìm hiểu cách sử dụng Postman để gửi và nhận JSON qua RESTCONF API từ thiết bị mạng Cisco.
👉 Nếu bạn đang học lập trình mạng hoặc làm việc với API (đặc biệt là RESTCONF/NETCONF), thì việc hiểu rõ JSON – JavaScript Object Notation là chìa khóa vàng. Đây là cách các thiết bị hiện đại giao tiếp với nhau bằng API thay vì dòng lệnh truyền thống.
JSON là gì?
JSON là một định dạng dữ liệu dạng văn bản được dùng để trao đổi dữ liệu giữa client và server, hay giữa các hệ thống mạng. Nó cực kỳ phổ biến vì:
- Dễ đọc với con người 👀
- Dễ xử lý bằng máy móc 🤖
- Tương thích tốt với các ngôn ngữ lập trình như Python, JavaScript, Go...
JSON hoạt động bằng cách tổ chức dữ liệu theo cặp key-value (khóa-giá trị), tương tự như dictionary trong Python hoặc map trong Golang.
📌 Cấu trúc chính của JSON
JSON chỉ dùng 2 cấu trúc chính:
- Object – Dạng {} chứa các cặp khóa-giá trị
- Array – Dạng [] chứa danh sách các giá trị (có thể là object hoặc array khác)
{ "device": { "name": "csr1kv1", "vendor": "cisco", "uptime": "2 days" } }
🔍 Ví dụ 2 – JSON dạng danh sách lồng object:
[ { "hostname": "csr1kv1", "snmp": [ {"name": "public", "permission": "ro"}, {"name": "private", "permission": "rw"} ] } ]
🐍 Làm việc với JSON trong Python
✅ Python hỗ trợ JSON rất tốt thông qua module json:
- json.dumps() – Chuyển từ dictionary → JSON string
- json.loads() – Chuyển từ JSON string → Python object
import json facts = { "device": { "name": "csr1kv1", "uptime": "2 days" } } # Chuyển thành JSON string json_data = json.dumps(facts, indent=4) # In đẹp print(json_data) # Ngược lại: chuyển từ JSON string thành Python dict facts_dict = json.loads(json_data) print(facts_dict["device"]["uptime"]) # output: 2 days
❓ Một số lưu ý thực chiến:
- JSON chỉ là chuỗi, nên để xử lý cần "parse" nó sang object Python.
- JSON không phải là dictionary, nhưng có thể ánh xạ 1-1.
- Bạn có thể dễ dàng kết hợp JSON với API requests bằng requests.get().json().
🎯 Ôn tập nhanh
Câu hỏi: Những chuỗi nào là JSON hợp lệ?
Đáp án đúng (✔️):
{"vlan_ids":[100,200,300]} [["csr1kv1", "cisco"], ["csr1kv1", "cisco"]] [{"hostname":"csr1kv", "uptime":"184 days"}]
Câu sai (❌):
'{"vlan_ids":[100,200,300]}' # dấu nháy đơn sai chuẩn
💡 Gợi ý tự học
Bạn có thể truy cập vào các trang như:
- https://jsonlint.com – để kiểm tra JSON có hợp lệ không
- https://reqres.in hoặc https://jsonplaceholder.typicode.com – các API public để thử nghiệm lấy JSON
📚 Bài tiếp theo trong chuỗi học:
👉 Chúng ta sẽ tìm hiểu cách sử dụng Postman để gửi và nhận JSON qua RESTCONF API từ thiết bị mạng Cisco.