diff --git a/protoc-gen-gripmock/server.tmpl b/protoc-gen-gripmock/server.tmpl index d0efc55f..8085e476 100644 --- a/protoc-gen-gripmock/server.tmpl +++ b/protoc-gen-gripmock/server.tmpl @@ -16,9 +16,9 @@ import ( "log" "net" "net/http" - "encoding/json" "github.com/gripmock/environment" + "github.com/gripmock/json" jsonpb "google.golang.org/protobuf/encoding/protojson" "google.golang.org/grpc" "google.golang.org/grpc/metadata" @@ -330,9 +330,10 @@ func findStub(ctx context.Context, conf environment.Config, service, method stri } } + var buffer bytes.Buffer + // Convert the search result to JSON. - data, err := json.Marshal(searchStub.JSON200.Data) - if err != nil { + if err := json.Encode(&buffer, searchStub.JSON200.Data); err != nil { return err } @@ -352,6 +353,6 @@ func findStub(ctx context.Context, conf environment.Config, service, method stri grpc.SetHeader(ctx, mdResp) // Unmarshal the search result into the output message. - return jsonpb.Unmarshal(data, out) + return jsonpb.Unmarshal(buffer.Bytes(), out) } {{ end }}