From b4c517bbb083881e3da010f75dca775ba8bfc2e3 Mon Sep 17 00:00:00 2001 From: denyeart Date: Sun, 29 Jan 2017 14:32:11 -0500 Subject: [PATCH] [FAB-1931] QSCC GetQueryResult not valid JSON produced by GetQueryResult() is not valid if there are multiple records returned. Need to add a comma before each JSON member (except for the first). Change-Id: I1d7586f888674a2251fa5578b1bc00faa3a73dbc Signed-off-by: denyeart --- core/scc/qscc/querier.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/scc/qscc/querier.go b/core/scc/qscc/querier.go index 626120d1569..338592929c2 100644 --- a/core/scc/qscc/querier.go +++ b/core/scc/qscc/querier.go @@ -150,10 +150,16 @@ func getQueryResult(vledger ledger.PeerLedger, query []byte) (res pb.Response) { buffer.WriteString("[") var qresult ledger.QueryResult + bArrayMemberAlreadyWritten := false qresult, err = ri.Next() for r := 0; qresult != nil && err == nil && r < limit; r++ { if qr, ok := qresult.(*ledger.QueryRecord); ok { + // Add a comma before array members, suppress it for the first array member + if bArrayMemberAlreadyWritten == true { + buffer.WriteString(",") + } collectRecord(&buffer, qr) + bArrayMemberAlreadyWritten = true } qresult, err = ri.Next() }