Hello Xin,
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.
Regards,
Patrick Dunn
the Telerik team
Do you want to have your say in the Sitefinity development roadmap? Do you want to know when a feature you requested is added or when a bug fixed? Explore the
Telerik Public Issue Tracking system and vote to affect the priority of the items