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.

Error de deserialización JSON al intentar volver a serializar la respuesta de RestSharp.

Estoy ejecutando la API get y quiero recuperar un valor específico de la respuesta JSON. Quiero obtener el valor de URL de Job en una variable, pero estoy obteniendo el siguiente error que dice que no se puede deserializar el objeto Json.

Estoy usando el siguiente modelo de objeto para mapear la respuesta Json.

Clases de objetos de trabajo e ítems:

La respuesta devuelta por la ejecución de la API GET devuelve el siguiente IResponse como contenido. Cuando intento deserializar la respuesta para recuperar el valor de URL, obtengo el error anterior. Soy nuevo en RestSharp y agradecería si alguien pudiera ayudarme a resolver esto.

Respuesta de JSON:

¡Agradezco sus comentarios para resolver este problema!

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para recuperar el valor Job URL de la respuesta JSON que se muestra en la captura de pantalla, puede utilizar el siguiente código:

    // Ejecuta la solicitud API "get"
    IRestResponse response = client.Execute(request);
    
    // Analiza la respuesta JSON utilizando el modelo de objeto BlujayGetJobResponse
    BlujayGetJobResponse jsonResponse = JsonConvert.DeserializeObject<blujaygetjobresponse>(response.Content);
    
    // Recupera el valor Job URL de la respuesta y guárdalo en una variable
    string jobUrl = jsonResponse.Items[0].Job.Url;
    

    El error que recibe (no se puede deserializar el objeto Json) se debe probablemente al hecho de que la propiedad Job en la clase Items se define como una lista de objetos Job, pero en la respuesta JSON es un solo objeto Job. Para solucionar esto, puede cambiar la propiedad Job en la clase Items a un solo objeto Job:

    public class Items
    {
        //public List<Consignment> Consignment { get; set; }
        public string Id { get; set; }
        public string DateCreated { get; set; }
        public string Gps { get; set; }
        public string ProcessOutcome { get; set; }
        public string ProcessOutcomeInternal { get; set; }
        public string ProcessType { get; set; }
        public string ProcessTypeInternal { get; set; }
        public string CallingCard { get; set; }
        public string AdhocLocation { get; set; }
        public string ProcessOutcomeReason { get; set; }
        public string ProcessOutcomeReasonInternal { get; set; }
        public string ProcessOutcomeReasonText { get; set; }
        public string IntendedTime { get; set; }
        public string SafePlace { get; set; }
        public string DeliveredToNeighbour { get; set; }
        public string NeighbourAddress { get; set; }
        public string IdentificationDetails { get; set; }
        public Job Job { get; set; }
    }
    

    Esto debería permitirle deserializar correctamente la respuesta JSON y recuperar el valor Job URL.

Comments are closed.