Я бы предложил вам попробовать json-c # -class-generator , чтобы вы могли передать этот поток для инициализации дерева объектов и затем просто использовать его. Я попробовал это с ОГРОМНЫМ JSON, и все прошло отлично !!!!!!
РЕДАКТИРОВАТЬ: Вам даже не придется передавать этот объект Stream, вы можете передать необработанную строку JSON, и вы сделаете свою работу !!! см;
public List<Result> HandleRequest(String json)
{
RootObject ro = new RootObject(json); //This line solved the problem, as now it become totally easy to consume this JSON as C# objects...
}