SBV is understood mainly by YouTube and a few caption tools. JSON is what APIs and most programming languages read natively. SBV is at home in uploading and downloading YouTube captions; 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. 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.