Desserializar JSON com nomes de elementos variados

Estou lutando para desserializar um json em um objeto vb.net com a newtonsoft. O problema é que o nome do elemento da seguinte matriz é diferente para cada matriz:

{
    "ABC": [{
            "key": "123",
            "md5sum": "e24cb0e730269e419f036a10dd6c38d0",
            "entity_metadata": {
            "document_index_end": ["3162"],
            "document_index_start": ["3147"]
        }
    }, {
        "key": "456",
        "md5sum": "e24cb0e730269e419f036a10dd6c38d0",
        "entity_metadata": {
            "document_index_end": ["3162"],
            "document_index_start": ["3156"]
        }
    }
],
"UZT": [{
        "key": "074",
        "md5sum": "dfed620a43ed7dcc2f0923337b9a75b0",
        "entity_metadata": {
            "document_index_end": ["92"],
            "document_index_start": ["85"]
        }
    }
],
"NEQUZ": [{
        "key": "651",
        "md5sum": "8b7bf4c2477ec72e0577aa5c968ffa1c",
        "entity_metadata": {
            "document_index_end": ["3686"],
            "document_index_start": ["3663"]
        }
    }
],
"NUTRF": [{
        "key": "8422",
        "md5sum": "a730b1bf89fd4da9986edeb931f3e507",
        "entity_metadata": {
            "document_index_end": ["1133"],
            "document_index_start": ["1117"]
        }
    }, {
        "key": "5488",
        "md5sum": "a7aaff53e54d252ede34139e2f2404a1",
        "entity_metadata": {
            "document_index_end": ["1154"],
            "document_index_start": ["1151"]
        }
    }, {
        "key": "5522",
        "md5sum": "a7aaff53e54d252ede34139e2f2404a1",
        "entity_metadata": {
            "document_index_end": ["1163"],
            "document_index_start": ["1156"]
        }
    }
]
}

Como posso desserializar esse json específico para um objeto vb.net? Estou lutando com os diferentes nomes das seguintes matrizes, como "ABC", "UZT".

Muito obrigado pela sua ajuda!

Atenciosamente Martin

questionAnswers(1)

yourAnswerToTheQuestion