Como faço para serialização automática de dados de objetos de dados?

Um dos grandes benefícios em linguagens que têm algum tipo de reflexão / introspecição é que os objetos podem ser construídos automaticamente a partir de uma variedade de fontes.

Por exemplo, em Java, posso usar os mesmos objetos para persistir em um db (com Hibernate), serializar para XML (com JAXB) e serializar para JSON (json-lib). Você pode fazer o mesmo no Ruby e Python, geralmente também seguindo algumas regras simples para propriedades ou anotações para Java.

Portanto, não preciso de muitos "Objetos de Transferência de Domínio". Posso me concentrar no domínio em que estou trabalhando.

Parece que em FP muito rigoroso, como Haskell e Ocaml, isso não é possível. Particularmente Haskell. A única coisa que vi é fazer algum tipo de pré-processamento ou metaprogramação (ocaml). É apenas aceito que você tenha que fazer todas as transformações de baixo para cima?

Em outras palavras, você precisa fazer muito trabalho chato para transformar um tipo de dados em haskell em um objeto de Linha JSON / XML / DB e novamente em um objeto de dados.

questionAnswers(5)

yourAnswerToTheQuestion