How to handle shortcodes when using the JSON API

You can add your own AJAX API for do_shortcode. Add this to a suitable location (i.e. functions.php or a plugin):

add_action('wp_ajax_doshortcode', 'ajax_doshortcode');
function doshortcode() {
  echo do_shortcode($_POST['text']);
  die(); // this is required to return a proper result
}

And this to your Javascript:

$.ajax({
  url : ajaxurl,
  data : { action : 'doshortcode', text : <text> },
  type : 'POST',
  error : function(req, stat, err) {...},
  success : function(data, stat, req) {...}
});

ajaxurl is defined on admin pages; see here for instructions for viewer-side applications.

Alternatively, you can set up such actions for all API functions you need, wrapping the original calls with do_shortcode.