The easiest would be to strip the entire presentation layer, i.e. the view system, to make it work. But that will mean that plugins will have to be integrated one by one. You can of course write individual directives, but from past experience trying to create JS-driven apps in Elgg, it's a snowball effect - to get a page as JSON, you have to rewrite pretty much everything.
Evan did some work on this, but I think he hit a dead end:
info@elgg.org
Security issues should be reported to security@elgg.org!
©2014 the Elgg Foundation
Elgg is a registered trademark of Thematic Networks.
Cover image by Raül Utrera is used under Creative Commons license.
Icons by Flaticon and FontAwesome.