Мне интересно, существует ли способ динамического расширения числа записей, которые разделяют одни и те же типы данных в структуре, без использования массива.
, например:
type MyHouse struct{
Bedroom *Bedroom `json:"bedroom"`
Kitchen *Kitchen `json:"Kitchen"`
}
type Kitchen struct{
Sink *Sink `json:"sink"`
Oven *Oven `json:"oven"`
}
type Oven struct{
Brand string `json:"brand"`
HobSize []int `json:"hobs"`
type Sink struct{
Volume int `json:"volume"`
}
type Bedroom struct{
Bed *Bed `json:"bed"`
Table *Table `json:"table"`
}
type Bed struct{
Brand string `json:"brand"`
Size String `json:"size"`
type Table struct{
Brand string `json:"brand"`
Legs int `json:"legs"`
SurfaceArea int `json:"SurfacceArea"`
Draws []Draws`json:"draws"`
}
type Draws struct{
Depth int `json:"depth"`
Width int `json:"width"`
Length int `json:"length"`
}
func main() {
res := &MyHouse{
Bedroom: &Bedroom{
Bed: &Bed{
Brand: "Sleepy",
Size : "King"},
Table: &Table{
Brand : "TabelY"
Legs : 1
SurfaceAr: 32
Draws : []Draws{
{
Depth :10
Width :10
Length :10
},
{
Depth :20
Width :10
Length :10
}
}
}
}
Kitcken: &Kitchen{
Oven: &Oven{
Brand: "Bake right",
hobs: []int{12,12,24,24}
}
Sink: &Sink{
Volume: 56
}
}
}
restopring, _ := json.Marshal(res)
fmt.Println(string(resprint))
}
Это просто - просто распечатать точно, что там есть, и я мог бы просто поменять жестко закодированные значения для переменных (я не просто оставил это простым), если я хочу просто иметь возможность изменять значения.
что я хочу сделать, это добавить еще одну таблицу в спальню с точно такими же данными (разными значениями), не превращая таблицы в массив таблиц (и фактически одинаковых для комнат), чтобы я мограспечатать json, который был отформатирован примерно так:
{MasterBedroom: (все релевантные вещи)}, {SpareBedroom: (его собственный набор вещей)}}
Кроме того, это всего лишь примерв действительности это могут быть здания с сотнями комнат, в каждом из которых много мебели, требующих разных названий, но использующих одни и те же базовые данные, определенные в структурах.Я думал о каком-то цикле for, который мог бы принять пользовательское значение для количества спален, которое имел пользователь, и динамически создать такое количество спален в json, как:
{Bedroom1: (все соответствующие вещи)}, {Спальня2: (свой собственный набор вещей)} .... и т. Д.
Я видел пару примеров, которые используют карту, но в итоге они распечатывают:
карта [[Спальня1:[все вещи]], Спальня2: [это вещи]]
, что также не работает так, как мне нужно
Заранее спасибо
Чтобы уточнить впример, который я привел вам, должен был бы быть в состоянии создать бесконечное количество комнат внутри json без использования [] спальни в структуре my house
Это не то же самое, что пример json-маршала, который есть у некоторых людейопубликовал пользователь: Франк в качестве примера