I have ran into a similar issue before. What's happening is you are getting the entire JSON object in memory before parsing it. What you want to do it use some kind of reader to Stream it.

https://sites.google.com/site/gson/streaming

From the doc:

Most applications should use only the object model API. JSON streaming is useful in just a few situations:

When it is impossible or undesirable to load the entire object model into memory. This is most relevant on mobile platforms where memory is limited.

When it is necessary to read or write a document before it is completely available.