¿Cómo obtengo una propiedad profundamente anidada de una cadena JSON?

¿Cómo puedo obtener la matriz "myThings" de JSON que se parece a lo siguiente usando JSON.NET?

Ejemplo 1:

{
    "z": {
        "a": 1,
        "b": 2
    },
    "something": {
        "y": [1, 2],
        "somethingElse": {
            "1234": {
                "foo": "bar",
                "myThings": [{
                    "name": "bob",
                    "age": 3
                }, {
                    "name": "bob",
                    "age": 3
                }]
            }
        }
    }
}

Ejemplo 2

{
    "z": {
        "a": 1,
        "b": 2
    },
    "something": {
        "y": [1, 2],
        "somethingElse": {
            "7890": {
                "foo": "bar"
            }
        }
    }
}

Un par de cosas con las que tengo dificultades:

Uno de los nombres de propiedad es un número que es impredecible ("1234" y "7890")A veces, la matriz "myThings" no existe; en este caso, es nulo o una matriz / colección vacía es lo que quiero tener

Otra consideración en caso de que lo ayude: tengo una clase estática que representa las cosas dentro de la matriz myThings, por lo que mi valor de retorno ideal seríaIEnumerable<MyThing>

Mi primer intento fue usarJsonConvert.DeserializeObject<dynamic>(json) pero no sé cómo manejar los problemas que mencioné anteriormente. Al final, no necesito toda la cadena de datos JSON, solo esa matriz interna llamada "myThings".

Respuestas a la pregunta(1)

Su respuesta a la pregunta