2010-07-07 7 views
1

Je reçois ce resposne JSON à partir d'un serveur:deserialize JSON

{"User1":0, "User2":0,"User3":0,"User4":0,"User5":0,"UserN":0,} 

Les utilisateurs peuvent être de 0 à N.

Je veux désérialiser cette chaîne JSON dans une liste d'utilisateurs

public class User 
{ 
public string Name{get;set;} 
public string Status{get;set;} 
} 

J'essaie cela mais ça ne marche pas.

List<Users> peoples; 

peoples = new JavaScriptSerializer().Deserialize<List<Users>>(jsonString); 
+0

Avez-vous essayé de modifier la propriété d'état de la classe en int? – James

Répondre

1

Pouvez-vous essayer ça?

JavaScriptSerializer mySerialiser = new JavaScriptSerializer(new SimpleTypeResolver()); 

Cordialement,

Edit:

Dans votre cas:

peoples = new JavaScriptSerializer(new SimpleTypeResolver()).Deserialize<List<Users>>(jsonString); 
+0

Salut Trefex, j'essaie ton avance, mais ça ne marche pas. Il se termine avec cette erreur Impossible de convertir un objet de type 'System.Boolean' en: type 'System.Collections.Generic.List' – Tom159

+0

Utilisez cette syntaxe également pour sérialiser l'objet. – Trefex

3

La raison pour laquelle cela ne fonctionne pas parce que la chaîne JSON que vous recevez est pas une liste de objets mais un seul objet avec plusieurs propriétés. Une liste est généralement représentée avec [] dans JSON:

[{"Name":"User0","Status":"0"},{"Name":"User1","Status":"0"}] 
+0

mais, je reçois du serveur uniquement une chaîne JSON ... – Tom159

Questions connexes