func (i *ID) UnmarshalJSON(b []byte) (err error) {
	var id uint64
	if len(b) < 3 {
		return nil
	}
	id, err = strconv.ParseUint(string(b[1:len(b)-1]), 16, 64)
	*i = ID(id)
	return err
}
UnmarshalJSON deserializes an ID type (SpanID, ParentSpanID) from HEX.
package model
import (
	"fmt"
	"strconv"
)
type ID uint64
func (i ID) String() string {
	return fmt.Sprintf("%016x", uint64(i))
}
func (i ID) MarshalJSON() ([]byte, error) {
	return []byte(fmt.Sprintf("%q", i.String())), nil
}