web-dev-qa-db-fra.com

Désérialisation d'une chaîne json avec newtonsoft ou restsharp

J'ai une chaîne qui sort d'une base de données au format Json.

J'ai essayé de le désérialiser avec:

RestSharp.Deserializers.JsonDeserializer deserial = new JsonDeserializer();
var x = deserial .Deserialize<Customer>(myStringFromDB)

Mais le .Deserialize la fonction attend un IRestResponse

Existe-t-il un moyen d'utiliser RestSharp pour désérialiser simplement les chaînes brutes?

28

J'ai également ce problème, et je le résout en utilisant Newtonsoft.Json .

Inclure ces espaces de noms:

using Newtonsoft.Json;
using RestSharp;

et essayez quelque chose comme ceci:

return JsonConvert.DeserializeObject<T>(response.Content);

Sur le response.Content, vous aurez le résultat brut, il vous suffit donc de désérialiser cette chaîne en un objet json. Le T dans le cas est le type que vous devez désérialiser. Comme échantillon:

var customerDto = JsonConvert.DeserializeObject<CustomerDto>(response.Content);
35
Felipe Oriani

Si vous voulez éviter d'utiliser des bibliothèques supplémentaires, essayez ceci:

RestSharp.RestResponse response = new RestSharp.RestResponse();

response.Content = myStringFromDB; 

RestSharp.Deserializers.JsonDeserializer deserial = new JsonDeserializer();

Customer x = deserial.Deserialize<Customer>(response);

Des mises en garde s'appliquent - pas largement testées - mais semblent fonctionner assez bien.

38
StevieJ81