用AJAX加载块的内容

What is the best way, installing as few modules as possible, to load content into a custom block?

My understanding is that an easy way to do it is by creating a page callback that calls drupal_json_output() and then add a Drupal JavaScript behavior to query that page and receive the JSON content.

Are there better ways? Is there any already built-in functionality?

It looks like the Ajax Blocks module might do what you're looking for.