How to read JSON from external URL and display in a block?
For the most basic solution, you would need to:


Create a custom module;
Implement hook_block_info and hook_block_view to define your block (see block_example.module for examples);
When generating the block content, use drupal_http_request to retrieve the json data from your URL and process the return value as needed.


A more complex version of your custom module could for instance involve implementing hook_block_configure to make the URL configurable from the UI, using theme functions to generate the HTML output, and caching/storage of the return value.

A completely different approach, which may or may not be appropiate in your case, would be to use the Feeds module to retrieve the JSON and store the data as nodes, and use the Views module to generate a block listing those nodes.