Я создаю API, который будет получать объект по определенному маршруту. На этом маршруте я могу получить один объект или большую его часть.
Пример:
[{"foo":"bar"}]
{"foo":"bar"}
Как узнать, является ли запрос тела фрагментом или единственным объектом до того, как де json.Unmarshal
. Более того, если это невозможно, каков наилучший способ принять эти два типа запросов тела и преобразовать их в список объектов?
Я ожидаю что-то вроде этого:
type Foo struct {
Foo string `json:"foo"`
}
func Bla() []Foo {
fakeBody := []byte(`[{"foo":"bar"}]`)
fakeBody2 := []byte(`{"foo":"bar"}`)
var foo []Foo
// If fakeBody contains a array of objects
// then parse it to the foo slice variable normally
// So, if the fakeBody2 is a single object then
// parse this single object to the foo slice that will contain only
// one element.
return foo
}