func (id *ID) UnmarshalJSON(data []byte) error {
	// Support both uint64 and string IDs.
	var v uint64
	if err := json.Unmarshal(data, &v); err == nil {
		*id = ID{Num: v}
		return nil
	}
	var v2 string
	if err := json.Unmarshal(data, &v2); err != nil {
		return err
	}
	*id = ID{Str: v2, IsString: true}
	return nil
}
func (id *ID) UnmarshalJSON(data []byte) error {
	
	var v uint64
	if err := json.Unmarshal(data, &v); err == nil {
		*id = ID{Num: v}
		return nil
	}
	var v2 string
	if err := json.Unmarshal(data, &v2); err != nil {
		return err
	}
	*id = ID{Str: v2, IsString: true}
	return nil
}
func ( id * ID ) UnmarshalJSON ( data [ ] byte ) error { // Support both uint64 and string IDs. var v uint64 if err := json . Unmarshal ( data , & v ) ; err == nil { * id = ID { Num : v } return nil } var v2 string if err := json . Unmarshal ( data , & v2 ) ; err != nil { return err } * id = ID { Str : v2 , IsString : true } return nil }
// UnmarshalJSON implements json.Unmarshaler.
UnmarshalJSON implements json . Unmarshaler .