Как я могу распечатать неупорядоченные данные в golang?

Я читаю json из Raabbitmq в golang и отображаю json в интерфейсе.

Моя структура выглядит так, и

type Documents struct {
    user_id    string
    partner_id []string
    last_login int
}

и я сопоставляю входящий json в приведенной выше структуре, но для целей отладки я хочу увидеть массив интерфейса, как я могу распечатать сопоставленный массив данных (тело в моем случае)

        var body []Documents
        json.Unmarshal(d.Body, &body)

        log.Printf("Received a message: %s", body)

Нужно ли указывать другой идентификатор вместо %s?


person Gaurav Garg    schedule 07.07.2017    source источник
comment
массив интерфейсов --- что это?   -  person zerkms    schedule 07.07.2017
comment
извините за смешивание вещей, но я хотел распечатать интерфейс, поэтому посмотрите данные и любые массивы, которые инкапсулирует интерфейс, чтобы проверить, правильно ли сопоставлены данные,   -  person Gaurav Garg    schedule 07.07.2017


Ответы (1)


У вас проблема с определением структуры. Вам нужно использовать экспортированный идентификатор, например:

type Documents struct {
    UserID    string    `json:"user_id"`
    PartnerID []string  `json:"partner_id"`
    LastLogin int       `json:"last_login"`
}

Для вашего вопроса обратитесь к формату печатных глаголов.

Чтобы напечатать значения body-

log.Printf("Received a message: %v", body)

Чтобы распечатать значения вместе с именем переменной -

log.Printf("Received a message: %#v", body)
person jeevatkm    schedule 07.07.2017