Populating main menu from external JSON API

I would not bother creating a nav menu for this, I would just write a code that takes JSON as input and spits out menu markup with the data. WP’s menu data structures are quite unwieldy and aren’t too convenient to work with.

There are also issues of persistence and performance (network request is usually crazy heavy operation) so you would probably want to cache data for a while and only update cache if request succeeds.