Comment utiliser DataContractJsonSerializer Json?
J'ai json structure comme ceci:
{
"id":"12345",
"first_name": "dino",
"last_name": "he",
"emails": {
"preferred": "1",
"personal": "2",
"business": "3",
"other": "4"
}
}
Je veux récupérer la valeur dans les e-Mails
Alors, j'ai écrit deux classes:
[DataContract]
public class UserInformation
{
[DataMember(Name = "id")]
public string ID { get; set; }
[DataMember(Name = "emails")]
public Emails emails { get; set; }
[DataMember(Name = "last_name")]
public string Name { get; set; }
}
[DataContract]
public class Emails
{
[DataMember(Name = "preferred")]
public string Preferred { get; set; }
[DataMember(Name = "personal")]
public string Account { get; set; }
[DataMember(Name = "business")]
public string Personal { get; set; }
[DataMember(Name = "other")]
public string Business { get; set; }
}
Et
J'écris du code comme ceci:
StreamReader stream = new StreamReader(@"C:\Visual Studio 2012\Projects\ASP.net\WebApplication1\WebApplication2\TextFile1.txt");
string text = stream.ReadToEnd();
stream.Close();
byte[] byteArray = Encoding.UTF8.GetBytes(text);
MemoryStream stream1 = new MemoryStream(byteArray);
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(UserInformation));
var info = serializer.ReadObject(stream1) as UserInformation;
stream1.Close();
Pour info, je peux obtenir d'autres valeurs dans UserInformation, Mais pour les Mails je ne reçois rien.
Pourquoi, Et comment dois-je écrire la classe?
S'il vous plaît aider moi!
Que voulez-vous dire que vous n'obtenez rien? N'est-il pas une valeur en
Oui, j'en suis sûr, et le problème est que j'ai besoin de changer la propriété dans les e-Mails en minuscules! Je ne sais pas pourquoi... mais il me semble que je les modifier à la baisse des cas, ils pourraient travailler!
info.emails
? Êtes-vous sûr que vous êtes la lecture de la file de droite?Oui, j'en suis sûr, et le problème est que j'ai besoin de changer la propriété dans les e-Mails en minuscules! Je ne sais pas pourquoi... mais il me semble que je les modifier à la baisse des cas, ils pourraient travailler!
OriginalL'auteur EthenHY | 2013-02-19
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé le problème est que j'ai besoin de changer tous mes biens dans les e-Mails en minuscules...
Je ne sais pas pourquoi.. Mais il a travaillé.
[DataMember(Name = "emails")] public Emails emails { get; set; }
. Sans le Nom du paramètre est spécifié, il est par défaut à accepterEmails
.OriginalL'auteur EthenHY
Le cas de votre propriété de l'objet doit correspondre le cas dans le JSON. (Voir en gras ci-dessous).
OriginalL'auteur user2676032