MCPcopy
hub / github.com/grafana/tempo / UnmarshalJSON

Method UnmarshalJSON

modules/overrides/config_legacy.go:203–235  ·  view source on GitHub ↗
(data []byte)

Source from the content-addressed store, hash-verified

201}
202
203func (l *LegacyOverrides) UnmarshalJSON(data []byte) error {
204 type plain LegacyOverrides
205 if err := json.Unmarshal(data, (*plain)(l)); err != nil {
206 return err
207 }
208
209 var raw map[string]json.RawMessage
210 if err := json.Unmarshal(data, &raw); err != nil {
211 return err
212 }
213
214 for key := range knownLegacyOverridesJSONFields() {
215 delete(raw, key)
216 }
217 if len(raw) == 0 {
218 // No extension keys in this payload; clear any stale Extensions from a prior decode.
219 l.Extensions = nil
220 return nil
221 }
222
223 l.Extensions = make(map[string]any, len(raw))
224 for k, v := range raw {
225 var val any
226 if err := json.Unmarshal(v, &val); err != nil {
227 return err
228 }
229 l.Extensions[k] = val
230 }
231
232 // Convert flat legacy keys to typed instances; processExtensions must not be called here
233 // as it expects nested keys (e.g. "my_ext"), not flat legacy keys (e.g. "my_ext_field").
234 return processLegacyExtensions(l)
235}
236
237func (l LegacyOverrides) MarshalJSON() ([]byte, error) {
238 type plain LegacyOverrides

Callers

nothing calls this directly

Calls 2

processLegacyExtensionsFunction · 0.85
UnmarshalMethod · 0.65

Tested by

no test coverage detected