Thank you for contacting us.
Yes building a custom widget is your best bet to consume JSON from an outside source and display it on the page. With this method you could consume the WebAPI as you would in any other asp.net application as the widget's are based off user controls or custom controls. Here's a video on how to create custom widgets. If you don't have it already I highly recommend using Sitefinity Thunder as it makes the process infinitely easier from development to installing your custom widget.
I hope this helps.