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.

analizando el resultado de la API web

Soy nuevo en web api. He llamado a una web api externa.

var url = "http://service.mydomain.com/api/GetItems";

var parameters = new Dictionary<string, string="">();
parameters["id"] = "10";
using (HttpClient client = new HttpClient())
{
    var post = client.PostAsync(url, new FormUrlEncodedContent(parameters)).Result;
    if (post.IsSuccessStatusCode)
    {                   
        var result = post.Content.ReadAsStringAsync();                    
    }
}

El valor del resultado es:

"{"Status":1,"Data":{"state":1,"message":"Hecho correctamente","WorkName":"prueba","WorkUrl":"192.168.1.10/go"},"Message":null}"

¿Cómo puedo acceder a cualquier elemento del valor del resultado?</string,>

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para acceder a cualquier elemento del valor del resultado, necesitas deserializar la cadena JSON en un objeto o un diccionario utilizando un serializador de JSON como Newtonsoft.Json.

    Primero, agrega el paquete Newtonsoft.Json a tu proyecto usando NuGet:

    Install-Package Newtonsoft.Json
    

    Luego, deserializa la cadena JSON de la siguiente manera:

    using Newtonsoft.Json;
    ...
    
    var jsonString = result.Result; // asumiendo que result es una variable de tipo string que contiene el JSON
    var json = JsonConvert.DeserializeObject<dynamic>(jsonString);
    
    var status = json.Status; // 1
    var data = json.Data; // un diccionario que contiene { "state": 1, "message": "Hecho exitosamente", "WorkName": "prueba", "WorkUrl": "192.168.1.10/go" }
    var message = json.Message; // null
    
    // para acceder a los elementos en el diccionario Data:
    var state = data.state; // 1
    var messageData = data.message; // "Hecho exitosamente"
    var workName = data.WorkName; // "prueba"
    var workUrl = data.WorkUrl; // "192.168.1.10/go"
    

    Ten en cuenta que también puedes deserializar la cadena JSON en una clase con tipos fuertemente definidos que represente la estructura de datos, lo cual puede ser más fácil de manejar que un diccionario dinámico.

Comments are closed.