¿Cómo DeserializeObject una cadena con llaves en el valor?

Tengo esta cadena que necesito deserializar.

"{\"errors\":{\"validationError\":[\"Custom error message here.\"]},\"title\":\"One or more validation errors occurred.\",\"status\":400}"

Este es mi código y estoy usando XUnit para mis pruebas.

var response = await client.GetAsync("api/ABC/Check?draftId=" + draftId);

var responseString = await response.Content.ReadAsStringAsync();

var result = JsonConvert.DeserializeObject<VerificationResponseError>(responseString);
Assert.Equal("Custom error message here.", result.validationError[0]);

y esta es mi VerificationResponseErrorclase.

public class VerificationResponseError {
    public string errors { get; set; }
    public List<string> validationError { get; set; }
}

Pero se rompe en

var result = JsonConvert.DeserializeObject<VerificationResponseError>(responseString);

Answer

Parece que tienes una clase incorrecta, ¿no debería ser algo como esto?

public class Errors
{
    public List<string> validationError { get; set; }
}

public class VerificationResponseError
{
    public Errors errors { get; set; }
    public string title { get; set; }
    public int status { get; set; }
}

Puede usar esta herramienta para verificar que https://json2csharp.com/

Su clase no representa su estructura json. Prueba a continuación:

public class VerificationResponseError
{
    public Errors errors { get; set; }
    public string title { get; set; }
    public int status { get; set; }
}

public class Errors
{
    public List<string> validationError { get; set; }
}

var result = JsonConvert.DeserializeObject<VerificationResponseError>(responseString);