Sure, I just created: https://issues.apache.org/jira/browse/GROOVY-11167
Also, thanks for the workaround. I ended up just using a POGO instead, but I hadn't thought of implementing a Map. I guess JsonOutput needs to be updated here <https://github.com/apache/groovy/blob/master/subprojects/groovy-json/src/main/java/groovy/json/DefaultJsonGenerator.java#L174> . I suppose we would add a new if case that check if the class of the object is a record, and the retrieve the components with clazz.getRecordComponents()? Guillaume On Tue, Sep 5, 2023 at 7:44 AM Paul King <pa...@asert.com.au> wrote: > We aren't picking up the metabean properties for the record correctly. > Would you like to file a bug report? > > Workarounds are to call "toMap()" (or *.toMap() on the list), or do > something like: > ``` > @AutoImplement > record Person(String name) implements Map { > Set entrySet() { toMap().entrySet() } > } > ``` > > > < > https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail > > > Virus-free.www.avast.com > < > https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail > > > <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2> > > On Tue, Sep 5, 2023 at 2:13 AM Guillaume Laforge <glafo...@gmail.com> > wrote: > > > > Hi, > > > > I was a bit surprised by this behavior with serializing records in JSON. > > > > I was expecting this assertion to pass: > > > > import groovy.json.JsonOutput > > record Person(String name) {} > > assert JsonOutput.toJson([new Person('Guillaume')]) == > '[{"name":"Guillaume"}]' > > > > Instead, I got [{}] > > > > Shouldn't records be treated like POGOs and thus serialize the same way > like in my example above? Or is there a good reason why this is not the > case? > > > > Guillaume > > > > -- > > Guillaume Laforge > > Apache Groovy committer > > Developer Advocate @ Google Cloud > > > > Blog: glaforge.dev > > Twitter: @glaforge > > Mastodon: @glafo...@uwyn.net > -- *Guillaume Laforge* Apache Groovy committer Developer Advocate @ Google Cloud <https://cloud.google.com/> - Blog: glaforge.dev - Twitter: @glaforge <http://twitter.com/glaforge> - Mastodon: @glafo...@uwyn.net <http://%40glafo...@uwyn.net/>