diff --git a/jsonrpc2.go b/jsonrpc2.go index 9ec1297..c7724ac 100644 --- a/jsonrpc2.go +++ b/jsonrpc2.go @@ -132,6 +132,9 @@ func (r *Response) MarshalJSON() ([]byte, error) { if r == nil { return nil, errors.New("can't marshal nil *jsonrpc2.Response") } + if (r.Result == nil || len(*r.Result) == 0) && r.Error == nil { + return nil, errors.New("can't marshal *jsonrpc2.Response (must have result or error)") + } b, err := json.Marshal(*r) if err != nil { return nil, err