INNER CODE UNIT · Go
func
ozontech/file.d · cfg/config.go:41
func (e *Expression) UnmarshalJSON(raw []byte) error {
decoder := json.NewDecoder(bytes.NewReader(raw))
decoder.UseNumber()
var value any
err := decoder.Decode(&value)
if err != nil {
return err
}
switch value := value.(type) {
case json.Number:
*e = Expression(value.String())
case string:
*e = Expression(value)
default:
return fmt.Errorf("can't cast %T to the Expression", value)
}