I want to handle a JSON response because I usually return data for multiple page elements. These aren't external APIs, they're requests to the backend server.
A simple example is adding a note to a product or order. When you submit it, it gets inlined, and say a visual note counter is incremented. Usually I'll return multiple HTML fragments if it's convenient, but I'll return a data structure if needed.