In addition to Martijn Welker answer, here are few more points which might help you.
1.First thing, always get the big data after you have loaded the page. You can get small data like global stats when you are loading the page(using the resolve thing but the data in the table should always come after the page is loaded). Give user a loading icon on table portion while you do this.
2.Do you directly show the data as JSON to the user (like a JSON file)? You can improve that by incrementally showing the data(something which JSONblob.com does). It shows top level keys, on clicking a key, it gives next level keys. Your backend can also be designed in such a way that you can give different request for different level and keys. Or you can have headers like:
user > profile > eduction
and show the data for this key, while making the headers clickable.You can also store previous details(small data) in case user wants to return back.
3.Try using pagination(backend or frontend your choice). If you are not doing any sorting/filtering stuff with your data and its readonly, you can use one way binding (Angular 1.3+) which removes the watches from your list. Even though, I don't know where you will need pagination for showing json :). Other than that, you can use plainJs to create this list.