jsonrpc2.go
func (r *Request) UnmarshalJSON(data []byte) error {
	var r2 struct {
		Method string           `json:"method"`
		Params *json.RawMessage `json:"params,omitempty"`
		Meta   *json.RawMessage `json:"meta,omitempty"`
		ID     *ID              `json:"id"`
	}

	// Detect if the "params" field is JSON "null" or just not present
	// by seeing if the field gets overwritten to nil.
	r2.Params = &json.RawMessage{}

	if err := json.Unmarshal(data, &r2); err != nil {
		return err
	}
	r.Method = r2.Method
	if r2.Params == nil {
		r.Params = &jsonNull
	} else if len(*r2.Params) == 0 {
		r.Params = nil
	} else {
		r.Params = r2.Params
	}
	r.Meta = r2.Meta
	if r2.ID == nil {
		r.ID = ID{}
		r.Notif = true
	} else {
		r.ID = *r2.ID
		r.Notif = false
	}
	return nil
}
func (r *Request) UnmarshalJSON(data []byte) error {
	var r2 struct {
		Method string           `json:"method"`
		Params *json.RawMessage `json:"params,omitempty"`
		Meta   *json.RawMessage `json:"meta,omitempty"`
		ID     *ID              `json:"id"`
	}

	// Detect if the "params" field is JSON "null" or just not present
	// by seeing if the field gets overwritten to nil.
	r2.Params = &json.RawMessage{}

	if err := json.Unmarshal(data, &r2); err != nil {
		return err
	}
	r.Method = r2.Method
	if r2.Params == nil {
		r.Params = &jsonNull
	} else if len(*r2.Params) == 0 {
		r.Params = nil
	} else {
		r.Params = r2.Params
	}
	r.Meta = r2.Meta
	if r2.ID == nil {
		r.ID = ID{}
		r.Notif = true
	} else {
		r.ID = *r2.ID
		r.Notif = false
	}
	return nil
}
func ( r * Request ) UnmarshalJSON ( data [ ] byte ) error { var r2 struct { Method string `json:"method"` Params * json . RawMessage `json:"params,omitempty"` Meta * json . RawMessage `json:"meta,omitempty"` ID * ID `json:"id"` } // Detect if the "params" field is JSON "null" or just not present // by seeing if the field gets overwritten to nil. r2 . Params = & json . RawMessage { } if err := json . Unmarshal ( data , & r2 ) ; err != nil { return err } r . Method = r2 . Method if r2 . Params == nil { r . Params = & jsonNull } else if len ( * r2 . Params ) == 0 { r . Params = nil } else { r . Params = r2 . Params } r . Meta = r2 . Meta if r2 . ID == nil { r . ID = ID { } r . Notif = true } else { r . ID = * r2 . ID r . Notif = false } return nil }
// UnmarshalJSON implements json.Unmarshaler.
UnmarshalJSON implements json . Unmarshaler .