Push metadata in array

You need to loop through your posts, and retrieve the metadata for each post. Add them to your array, and encode them to JSON.

$posts = $query->get_posts();
foreach( $posts as &$thispost ) { // reference the current item

    $thispost->meta = get_post_meta( $thispost->ID );

}

Now you got a WP_Post-Object, with all the post meta available at $post->meta['meta_key'][0]. If more than one value is saved for a meta key, you can loop through the ['meta_key']-Array.