I have written two new modules: XBMC.usp and XBMC-ES.usp to partially implement the new JSON interface in Crestron programs. Why 2 modules? I found that a lot of simple commands (Up/Down/Left/Right) are not supported by JSON at present so I use the EventServer api for those.
XBMC is a JSON-aware module than returns metadata strings about the currently playing track (Artist/Album/Title etc. ) for Music and Movies. It also implements some of the simpler JSON functions (JumpFwd, JumpBack, Restart/Shutdown/Update library etc.). It doesn't have a browse/search facility at present.
XBMC-ES uses the XBMC event server api to send transport commands and also some built-in commands. It fully implements the api, so adding additional functions is straightforward.
Still to do:
1. Browse/search facility for music, movies etc.
2. TV show metadata
3. Properly queue JSON requests before sending them to xbmc
I included a project module (XBMC.umc) to demonstrate how the 2 modules are linked together.
You can find a zip archive of the modules at
http://www.neilcarthy.com/files/XBMC-JSON.zip