I feel dirty. I just changed:
Segment: []Segment{{ (some initialisation) }}

to:
Segment: []map[string]interface{}{{ (some initialisation) }}

Thanks to a shall-remain-nameless web service for inconsistent return types in their JSON API (array if > 1 object, or just the object if only 1).
Shared publiclyView activity