In a past project, we had a similar system used where most of the UI of the iOS app was driven by json served by the server. You can definitely do a lot, but the syntax of json had quite some limitation especially when you are trying to code some complex UI actions or add some business logic linked to your dynamic UI.
The system did evolve into using a combination of json and JS using for back then the newly introduced framework JavaScriptCore ... It made everything a lot easier overall since JS is definitely a proper language.
The JS obviously was able to map to native objects and thus performance overall was great. The app is still used by millions of users daily.
Edit: typo and adding more info