You should definitely use a json parser to get flawless results.. I like the one provided with PHP and if your file is, as shown, a bunch json blocks separated with blank lines:
foreach( explode("\n\n", file_get_contents('/your/file.json_blocks')) as $js_block ):
$json = json_decode( trim($js_block) );
if ( isset( $json['title'] ) && $json['title'] && stripos($json['title'], 'java') ):
echo trim($json['title']), PHP_EOL;
endif;
endforeach;
This will be a lot more sure fire than doing the same with any given combination of sed/awk/grep/ et al, simply because json is follows a specific format and should be used with a parser. As an example, a simple new line in the 'title' which has no real meaning to the json but will break the solution provided by Jaypal.. Please see this for a similar problem: parsing xhtml with regex and why you shouldn't do it: RegEx match open tags except XHTML self-contained tags