es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

JsonConvert.DeserializeObject devuelve valores nulos

Tengo el siguiente código que estoy utilizando en una aplicación ASP.NET MVC c#:

HttpClient client = new HttpClient();
try
{
    var result = client.GetStringAsync(url).Result;
    APIReturn = JsonConvert.DeserializeObject<apireturn>(result);
}
catch
{
}

Cuando coloco un punto de interrupción en la línea “APIReturn = …”, y veo el contenido de “result”, veo lo que parece ser un retorno válido de la llamada a la API. Incluso copié el contenido de la variable “result” y lo apliqué a una herramienta JSON en línea. Esto es lo que muestra la herramienta:
enter image description here

Esta es la definición de la clase “APIReturn”:

public class APIReturn
{
    public string return_response { get; set; }
    public string return_code { get; set; }
    public string return_plan_name { get; set; }
    public string return_menu_string { get; set; }
    public string return_peo_ind { get; set; }
}

Al final de la ejecución del código, veo los valores de “APIReturn” y cada campo es nulo.

¿Alguna idea de por qué el JSON no está analizando la cadena?

Gracias.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Es posible que la clase APIReturn no esté mapeada correctamente a la respuesta JSON. Una cosa para verificar es que los nombres de las propiedades en la clase APIReturn coincidan exactamente con los nombres de las claves JSON (incluyendo sensibilidad a mayúsculas y minúsculas).

    Otra cosa para verificar es que la respuesta JSON esté correctamente formateada y no contenga caracteres inesperados o símbolos que podrían estar causando problemas con el análisis. Usar una herramienta en línea para validar el JSON es un buen paso.

    También es posible que se esté lanzando una excepción durante la deserialización que no está siendo capturada por el bloque try-catch. Puedes intentar agregar una declaración de depuración o un registro para ver si se están lanzando excepciones durante el proceso de deserialización.

Comments are closed.