What OFX is
OFX is the format behind the Download Transactions button on your bank's website. Version 1 is SGML, where a leaf element has an opening tag and no closing one. Version 2 is real XML. QFX is Intuit's variant of the same thing with a few extra tags, which is why a .qfx file opens in Quicken and is refused by software that only knows plain OFX.
Retail banks, credit card issuers and brokerages, because it is what Quicken and Microsoft Money asked for and the industry standardised on.
What JSON is
JSON is a text format for nested data: objects with named keys, arrays, strings, numbers, booleans and null. It has no date type and no comments.
Every web API, most configuration files and anything that talks to JavaScript.
What changes when you convert OFX to JSON
Each STMTTRN block becomes a row: date, amount, type, payee, memo, cheque number and the bank's own transaction id. The account number and currency come from the statement header and are added to every row, so a file merged with another still says which account it came from. Both the SGML and the XML flavour are read the same way.
You choose the shape. An array of objects is the default and the one most code expects. A 2D array is smaller. Column arrays suit charting libraries. A keyed object suits lookups by id.
What carries over from OFX to JSON
JSON can express everything OFX holds about a table, so this conversion is about shape rather than loss.
Both formats record types, so numbers, booleans and nulls survive as themselves rather than as text.