JsonML claims to be a round-trip transformation, but it is not. In particular, it does not have any way to represent the XML declaration, comments, processing instructions, or material outside the document element. Furthermore, CDATA sections, entity references, and character references cannot be distinguished from their literal equivalents. But if these don't matter to you, it's a pretty good mapping.