I solved the problem in a different way. First I extracted all the posts by including category name inside of it. Check the answer below.
public function module_data() {
global $json_api;
$url = parse_url($_SERVER['REQUEST_URI']);
$defaults = array(
'ignore_sticky_posts' => true,
'posts_per_page' => -1,
'order_by' => 'date',
'order' => 'ASC'
);
$query = wp_parse_args($url['query']);
unset($query['json']);
unset($query['post_status']);
$query = array_merge($defaults, $query);
$posts = $json_api->introspector->get_posts($query);
$result = $this->posts_result($posts);
unset($result['pages'], $result['count_total']);
foreach ($result['posts'] as $key) {
$key->thumbnail_image = $key->thumbnail_images['thumbnail']->url;
$key->large_image = $key->thumbnail_images['large']->url;
$key->category = $key->categories[0]->title;
//$key->categories
unset($key->id, $key->type, $key->slug, $key->url, $key->status, $key->title_plain, $key->excerpt, $key->tags, $key->author, $key->comments, $key->custom_fields, $key->comment_status, $key->comment_count, $key->categories, $key->attachments, $key->date, $key->modified, $key->thumbnail, $key->thumbnail_size
, $key->thumbnail_images['full'], $key->thumbnail_images['medium'], $key->thumbnail_images['medium_large'], $key->thumbnail_images);
}
$result['posts'] = $result['posts'];
return $result;
}