We should really figure out how to fail here. If we just return then do so before (ex: if (!address->IsArray()) { continue; // go on to next item? }