I recently needed a solution for this. Here is my fix.
I added the following lines just below the included files of json-api.php
if( isset($_GET['siteid']) ) {
global $site_id;
$site_id = $_GET['site_id'];
switch_to_blog($site_id);
}
You would just include the site id in your query string like so
https://example.com/api/?siteid=3&id=43&post_type=attachment
This was using wordpress 3.2.1
I don’t think the global $site_id declaration was 100% necessary but shouldn’t hurt.