ASS styling is not understood by simple players, and it is lost when converting to plain formats. JSON is what APIs and most programming languages read natively. ASS is at home in anime and karaoke subtitles with fonts, colours and positioning; 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. Each line takes its italic, bold, underline and alignment from its style and from override tags; drawing commands and karaoke effects are ignored. 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.