web-dev-qa-db-fra.com

Comment puis-je convertir mon résultat variable en un objet à l'aide de JSONConvert?

J'utilise .NET Core pour Linux pour un programme de console. En utilisant la fonctionnalité Http, je reçois des informations provenant d'un Webservice. Ensuite, j'essaie de convertir le résultat en un objet, mais je ne suis pas en mesure d'utiliser JSON.

J'ai lu cet article mais je ne trouve aucun exemple et je n'ai pas accès à JavaScriptSerializer

    public async void CallApi(Object stateInfo)
    {
        var client = new HttpClient();
        var requestContent = new FormUrlEncodedContent(new[] { new KeyValuePair<string, string>("pair", "XETHZEUR"), });
        HttpResponseMessage response = await client.PostAsync("https://api.kraken.com/0/public/Trades", requestContent);
        HttpContent responseContent = response.Content;
        using (var reader = new StreamReader(await responseContent.ReadAsStreamAsync()))
        {
            String result = await reader.ReadToEndAsync();
            //Here I would like to do a deserialized of my variable result using JSON (JObject obj = (JObject)JsonConvert.DeserializeObject(result);) But I don't find any JSON object
        }
    }

[~ # ~] edit [~ # ~] Je voudrais savoir comment utiliser JSON pour convertir mon résultat de variable en un objet comme je le fais généralement avec c #:

        JObject obj = (JObject)JsonConvert.DeserializeObject(result);

J'espère que vous pourrez m'aider.

Merci beaucoup,

6
eldondano

Vous aurez simplement besoin d'une sorte de dépendance disponible pour .NET core qui peut vous aider à désérialiser json.

Newtonsoft.Json est de facto standard et est disponible dans .NET core pour l'utiliser, vous devez l'ajouter dans votre fichier project.json

"dependencies" {
...
"Newtonsoft.Json": "10.0.3"
},

L'instruction using appropriée dans votre classe

using Newtonsoft.Json

vous pouvez ensuite désérialiser en utilisant JsonConvert.DeserializeObject(json);

    public async void CallApi(Object stateInfo)
{
    var client = new HttpClient();
    var requestContent = new FormUrlEncodedContent(new[] { new KeyValuePair<string, string>("pair", "XETHZEUR"), });
    HttpResponseMessage response = await client.PostAsync("https://api.kraken.com/0/public/Trades", requestContent);
    HttpContent responseContent = response.Content;
    using (var reader = new StreamReader(await responseContent.ReadAsStreamAsync()))
    {
        String result = await reader.ReadToEndAsync();
        //Here I would like to do a JSON Convert of my variable result
        var yourObject = JsonConvert.DeserializeObject(result);
    }
}
1
pijemcolu