У меня есть структура, которая декодируется из требования JSON http POST.Моя цель иметь эту структуру: - Упростить JSON-запрос от клиента. - Использовать данные свойств Structs в другой (внешней библиотеке) структуре.
Если мне нужно было использовать только внешнюю библиотечную структуру, установка JSON клиента будетвыглядеть сбивающим с толку.Как использовать значения структур в другой структуре (и особенно в их массивах)?
У меня есть рабочее решение для некоторых значений простых типов.
Рассмотрим следующее: Ext lib struct:
type ExtStruct struct {
From *Email
Subject string
Personalizations []*Personalization
}
Моя структура lib:
type MyStruct struct {
From *Email
Subject string
Personalizations []*Personalization
}
Вот мой код:
myStruct := &MyStruct{}
err := json.NewDecoder(body).Decode(myStruct)
extStruct := &ExtStruct{
Subject: myStruct.Subject,
From: (*extStruct.Email)(myStruct.From),
Personalizations: []*extStruct.Personalization{
To: ([]*extStruct.Email)(myStruct.To),
}}
Значение Subject
и From
работает,но я получаю ошибки при попытке ссылки на значения массива.Я не вижу, где я не прав.AFAIK нет другой возможности «упростить» ввод JSON от клиента, только для ссылки на значения в другой большей структуре.Я могу при необходимости включить другие ссылочные структуры, но думаю, что это:
type A struct {
RefB []*B
}
type B struct {
RefC []*C
Value string
}
type C struct {
Value string
}
И мне нужно, чтобы моя структура ссылалась на C.