fieldC is a hash value, a mix of letters and numbers. It is not shown surrounded by quotes as incoming data, but I could use a toString() or equivalent in Groovy to make it a string in advance of my Json formatting, if that helps matters.
One difference I note is that in your data[ ] map, each of the fieldA and fieldB values you show is surrounded by [ and ] , while mine are surrounded by { and }. Could that be causing my challenge? Does that matter? On Mon, Jun 6, 2022 at 11:46 AM Nelson, Erick <erick.nel...@hdsupply.com> wrote: > import groovy.json.* > > > > def data = [ > > fieldA:[lname:"Smith", fname:"John"], > > fieldB:[age:21, gender:"M"], > > fieldC:12345 > > ] > > > > println JsonOutput.toJson(data) > > > > > > ^^^ this works for me. > > Running it produces this… > > > > > {"fieldA":{"lname":"Smith","fname":"John"},"fieldB":{"age":21,"gender":"M"},"fieldC":12345} > > > > What is the source of your data look like? > > Is fieldC a number or a string? > > > > *From: *James McMahon <jsmcmah...@gmail.com> > *Date: *Monday, June 6, 2022 at 8:36 AM > *To: *users@groovy.apache.org <users@groovy.apache.org> > *Subject: *[EXT] Misformatting json output > > I am having problems properly formatting Json output to requirements. > > I have three fields, similar to this: > > fieldA has value {"lname":"Smith", "fname":"John"} > > fieldB has value {"age":"21", "gender":"M"} > > fields has value 12345 > > > > I put each into an empty Groovy map, result[:] . > > > > I'm required to generate Json output like this: > > { > > "fieldA": {"lname":"Smith", "fname":"John"}, > > "fieldB": {"age":"21", "gender":"M"}, > > "fieldC":"12345" > > } > > > > but am instead getting output with double quotes around the { } for fields > A and B, like this: > > { > > "fieldA": "{"lname":"Smith", "fname":"John"}", > > "fieldB": "{"age":"21", "gender":"M"}", > > "fieldC":"12345" > > } > > > > Is there a way I can suppress the surrounding of the values in the map > when I create the json? > > > > Currently this is how I process my map to json: > > > > def JsonStr = JsonOutput.prettyPrint(JsonOutput.toJson(result)) > > > > which I then write to my outputStream like this: > > > > outputStream.write(JsonStr.getBytes(StandardCharsets.UTF_8)) > > > > Thanks in advance for any help. >