Oracle has cursor expressions that returns a resultset inside a cell from the parent resultset. The whole resultset could then be serialized to json, xml or whatever
I wish there was an equivalent function in PostgreSQL. I've even asked a question about that on stackoverflow: