QuânSysAd's Blog: map string interface
Hiển thị các bài đăng có nhãn map string interface. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn map string interface. Hiển thị tất cả bài đăng

05 tháng 11 2019

Golang : truyền map[string]interface{} type vào function

Khi làm việc với REST API, bạn đôi khi gặp những cấu trúc JSON lồng nhau, và bạn cần truyền một giá trị của cấu trúc này vào hàm để thực hiện một số tính năng nhất định.
Ở đây tôi lấy một ví dụ bạn có hàm có định nghĩa trong package như sau như sau:
func (s *Service) UpdateDue(ID string, data map[string]interface{}) (*Response, error)
Bạn để ý rằng hàm này nhận type map[string]interface{} là tham số.
Vậy làm sao để truyền cấu trúc sau vào hàm này :
{
  "update": {
    "duedate": [
      {"set": "2014-05-22"}
    ]
  }
}
Bạn lưu ý trong cấu trúc này ở key duedate là một array, như vậy trong phần khai báo giá trị bạn phải dùng []interface{}
Bạn hãy làm như sau:
    valueDate := map[string]interface{} {
        "update" : map[string]interface{} {
            "duedate" : []interface{} {
                map[string]interface{} {"set": "2014-05-22"},
            },
        },
    }
Sau khi gán giá trị cho valueDate bạn chỉ cần gọi hàm và pass giá trị của valueDate vào hàm là xong.
UpdateDue(ID, valueDate)
Chúc các bạn thành công.