Go

Mã hóa JSON

json.Marshal, json.Unmarshal, struct tags, custom marshaling, streaming, RawMessage

20 câu hỏi phỏng vấn·
Mid-Level
1

Hàm nào cho phép mã hóa một struct Go thành JSON?

Câu trả lời

json.Marshal mã hóa một struct Go thành các byte JSON. Hàm này đọc các struct tags để tùy chỉnh việc tuần tự hóa (đổi tên, bỏ qua field). Để streaming tới io.Writer, dùng json.NewEncoder giúp tránh tạo một buffer trung gian trong bộ nhớ.

2

Hàm nào cho phép giải mã JSON thành một struct Go?

Câu trả lời

json.Unmarshal giải mã các byte JSON thành một struct Go. Phải truyền một con trỏ tới struct đích để dữ liệu được ghi đúng. Để streaming từ io.Reader, json.NewDecoder hiệu quả hơn vì nó tránh nạp toàn bộ JSON vào bộ nhớ.

3

JSON struct tag nào cho phép đổi tên một field khi tuần tự hóa?

Câu trả lời

Tag json:"custom_name" cho phép đổi tên một field khi tuần tự hóa JSON. Ví dụ, field UserID có thể trở thành user_id trong JSON. Điều này hữu ích để tuân theo quy ước đặt tên (snake_case trong JSON vs CamelCase trong Go).

4

JSON struct tag nào loại trừ hoàn toàn một field khỏi việc tuần tự hóa?

5

JSON struct tag nào cho phép bỏ qua một field nếu giá trị của nó rỗng?

+17 câu hỏi phỏng vấn

Nắm vững Go cho lần phỏng vấn tiếp theo

Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.

Bắt đầu miễn phí