in v3/internal/object_metadata.go [100:122]
func getJSONNumberAsString(data []byte) (string, error) {
if len(data) == 0 {
return "", nil
}
// first try string, this also catches null value
var s *string
err := json.Unmarshal(data, &s)
if err == nil && s != nil {
return *s, nil
} else if err == nil {
return "", nil
}
// fallback to int64
var i int64
err = json.Unmarshal(data, &i)
if err == nil {
return strconv.FormatInt(i, 10), nil
}
return "", fmt.Errorf("failed to parse as JSON Number")
}