Objet désérialisé A Toutes les Valeurs Null
Je suis en train de désérialiser JSON dans un objet personnalisé, mais tous mes propriétés sont null et pas sûr de ce qu'il se passe. Personne ne vois rien de mal?
JSON Exemple
{
"Keys": [
{
"RegistrationKey": "asdfasdfa",
"ValidationStatus": "Valid",
"ValidationDescription": null,
"Properties": [
{
"Key": "Guid",
"Value": "i0asd23165323sdfs68661358"
}
]
}
]
}
Voici mon Code, où strResponseValid est le JSON ci-dessus.
Keys myDeserializedObjValid = (Keys)JsonConvert.DeserializeObject(strResponseValid, typeof(Keys));
validationStatusValid = myDeserializedObjValid.ValidationStatus;
Voici mes classes
public class Keys
{
public string RegistrationKey { get; set; }
public string ValidationStatus { get; set; }
public string ValidationDescription { get; set; }
public List<Properties> PropertiesList { get; set; }
}
public class Properties
{
public string Key { get; set; }
public string Value { get; set; }
}
La langue qui est-ce?
OriginalL'auteur aahrens | 2011-10-21
Vous devez vous connecter pour publier un commentaire.
Votre JSON a un objet extérieur qui contient une collection d'objets Clés. Le code suivant fonctionne (j'ai testé):
OriginalL'auteur Frank
dans mon cas, c'était à cause de mon type de destination ont interne (ou privé) ensemble modificateurs de ces propriétés .
après le retrait interne modificateur, json.net désérialiser ces objets, comme le serlization étape
OriginalL'auteur Iman Abidi
Le problème, c'est que vous êtes à la définition de Clés que juste une classe, quand il est en fait une propriété.
OriginalL'auteur Mike Richards
Vous n'avez pas besoin de définir PropertiesList comme une liste dans la classe, il suffit d'appeler le PropertiesList Classe comme ci-dessous.
Puis essayez d'utiliser les éléments suivants pour désérialiser:
OriginalL'auteur Standage
JSON.NET est opt-dans la bibliothèque de sérialisation. Les propriétés de vos objets nécessitent d'attributs afin de les marquer comme étant inclus dans la structure JSON.
J'utilise Json.Net avec banalisée propriétés de tous les temps. Votre commentaire (et @MikeRichards la réponse ci-dessous) semblent être le problème réel.
Vous avez raison. J'ai toujours été utilisée comme un opt-dans la bibliothèque, mais qui est déterminée par un attribut de la classe.
ce n'est pas vrai. c'est l'opt-out par défaut ([JsonIgnore] de l'opt-out)
OriginalL'auteur Ricky Smith