Comment parser du JSON en utilisant RestSharp?
var client = new RestClient("http://10.0.2.2:50670/api");
var request = new RestRequest("Inventory", Method.GET);
request.OnBeforeDeserialization = resp => { resp.ContentType = "application/json"; };
//execute the request to return a list of InventoryItem
RestResponse<JavaList<InventoryItem>> response = (RestResponse<JavaList<InventoryItem>>)client.Execute<JavaList<InventoryItem>>(request);
Le contenu retournée est une chaîne JSON, un tableau d'objets. Voici un court extrait de:
[{"Id":1,"Upc":"1234567890","Quantity":100,"Created":"2012-01-01T00:00:00","Category":"Tequila","TransactionType":"Audit","MetaData":"PATRON 750ML"},{"Id":2,"Upc":"2345678901","Quantity":110,"Created":"2012-01-01T00:00:00","Category":"Whiskey","TransactionType":"Audit","MetaData":"JACK DANIELS 750ML"},{"Id":3,"Upc":"3456789012","Quantity":150,"Created":"2012-01-01T00:00:00","Category":"Vodka","TransactionType":"Audit","MetaData":"ABSOLUT 750ml"}]
Le message d'erreur:
Opération n'est pas valide en raison de l'état actuel de l'objet
Quel est le problème ici? Mon InventoryItem
a les mêmes propriétés que chaque objet dans la chaîne JSON. Ai-je raté une étape?
Aucune raison particulière pour laquelle vous êtes à l'aide de JavaList? Pouvez-vous poster le code pour InventoryItem trop?
OriginalL'auteur Josh | 2012-08-03
Vous devez vous connecter pour publier un commentaire.
Je soupçonne que SimpleJson, utilisé dans RestSharp ne peut pas deserialise à un JavaList.
D'abord je voudrais essayer deserialising à un:
À défaut, je recommande ServiceStack.Texte - .Net plus rapide du JSON d'une bibliothèque; faire:
C'est effectivement ce que je fais moi-même.
Edit (Merci aux commentateurs):
Dans des versions plus récentes, ce serait maintenant:
JsonDeserializer deserializer = new JsonDeserializer(); deserializer.Deserialize<List<InventoryItem>>(response);
J'ai édité mon post avec la syntaxe reflétant la version la plus récente. Comment sur le retrait de la downvote?
OriginalL'auteur manadart
À défaut w/auto-magie de la coulée, - je l'utiliser dans un pincement:
OriginalL'auteur sobelito