Using WP_Query to grab custom meta values, foreach to json object

The best way to go about this is with $wpdb. The query to draw out meta_value by category is:

$query = $wpdb->get_results(
    "SELECT p.`ID`, pm.`meta_value` FROM {$wpdb->postmeta} pm
    LEFT JOIN {$wpdb->posts} `p` ON `p`.`ID` = pm.`post_id`
    LEFT JOIN {$wpdb->term_relationships} `tr` ON `p`.`ID` = `tr`.`object_id`
    LEFT JOIN {$wpdb->term_taxonomy} `tt` ON `tr`.`term_taxonomy_id` = `tt`.`term_taxonomy_id`
    WHERE `pm`.`meta_key` = 'adhesion_box'
    AND `p`.`post_status` = 'publish'
    AND `p`.`post_type` = 'post'
    AND `tt`.`taxonomy` = 'category'
    AND `tt`.`term_id` = $cat
");