TTML is verbose XML that many consumer players cannot read. JSON is what APIs and most programming languages read natively. TTML is at home in subtitles delivered to broadcasters and streaming services; JSON is the usual choice for APIs and data exchanged between programs.
The text is read as UTF-8 or UTF-16, whichever the file is. An older file in another code page is read using the charset it declares, or as Windows-1252 if it declares none, so accented letters in an unlabelled legacy file can come out wrong. A file that is not text, such as the picture-based subtitles of a DVD, is refused instead of being converted to nonsense. Times in clock, offset, frame and tick form are all understood, and a region's position is kept as the cue's position. The result is a JSON list with one object per cue: its number, start and end as clock times and in milliseconds, and its text.