They do just about everything differently except that they both create payloadXML files that you can use.
If you can use the xSQL plugin then you should because it is better in every way. Faster, easier to use, and much more powerful.
In some cases though it is not possible, usually this only happens if you are using a mySQL database in XBMC or if your database files are in a location that VoxCommando can't reach for some reason.
xSQL plugin opens the sqlite database files directly and is able to perform sql queries to gather any information contained in the tables. It does this very efficiently, and lets you create your own sql queries which are powerful and easy to use. With xSQL, XBMC does not need to be running.
xJSON plugin must talk to XBMC through the http interface and request data using the JSON api, which only exposes certain information and is must clumsier and slow to use. XBMC must be running.
Here is a reference for the current XBMC JSON api (Frodo): http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6
the plugin uses calls such as this (
http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6#AudioLibrary.GetAlbums ) and then parses the json data returned to create payload XML files: