Отправить произвольный JSON в соединение с gorilla websocket

У меня есть следующая функция, в которой я хочу отправить произвольные данные JSON в соединение через веб-сокет. Данные зависят от того, что было отправлено на сервер. Как этого добиться, не создавая разные структуры для каждой вещи, которую я хочу отправить?

Я думаю примерно так:

func Register(c *websocket.Conn, m WebsocketGeneralClientMessage) { var d RegisterData json.Unmarshal(m.Data, &d) if len(d.Email) < 6 || len(d.Email) > 64 { c.WriteJSON(WebsocketGeneralServerMessage{ Type: «error», Data: map[string]interface{«text»: «This is an error»}}) return } if len(d.Password) < 6 || len(d.Password) > 32 { c.WriteJSON(WebsocketGeneralServerMessage{ Type: «error», Data: map[string]interface{«text»: «This is another error»}}) return } err := checkmail.ValidateFormat(d.Email) if err != nil { c.WriteJSON(WebsocketGeneralServerMessage{ Type: «error», Data: map[string]interface{«text»: «This is different than all the previous errors»}}) return } uuid, email, password, err := DB.RegisterAccount(requestEmail, requestPassword) if err != nil { c.WriteJSON(WebsocketGeneralServerMessage{ Type: «error», Data: map[string]interface{«text»: «An error occured while saving the account to the database»}}) return } c.WriteJSON(WebsocketGeneralServerMessage{ Type: «success», Data: map[string]interface{«uuid»: uuid}}) return } type WebsocketGeneralServerMessage struct { Type string Data map[string]interface{} }

Однако компилятор говорит:

syntax error: unexpected literal «text», expecting method or interface name

поэтому кажется, что этот синтаксис недействителен. Что тут можно сделать?

Это map[string]interface{}{«text»: …. Вы пропустили {}.   —  person virtumonde    schedule 20.09.2020

Ух ты! Пожалуйста, добавьте это в качестве ответа. Большое спасибо за Ваш ответ! Это было впечатляюще быстро.   —  person virtumonde    schedule 20.09.2020

Источник: ledsshop.ru

Стиль жизни - Здоровье!