7
votes

JSON.NET DESERIALIZEOBJECT > NON DE LA LISTE NAN NOR

Je suis resté bloqué avec la bibliothèque JSON.NET et sa méthode désherializeObject. La documentation n'est pas très claire avec ce qui pourrait se passer ici, alors j'apprécierais que quelqu'un puisse expliquer comment obtenir la manière de désérialiser Json dans la liste des objets utilisateur.

J'essaie de désérialiser ce Json P>

public class User
{
    ...
    [OnDeserializing]
    internal void OnDeserializing(StreamingContext context) {
    }
}


2 commentaires

Merci d'avoir montré votre travail. M'a aidé à travailler à travers ma question du Json! :)


Merci beaucoup sa résolution mon problème. :RÉ


4 Réponses :


7
votes

J'ai trouvé quel était le problème. JSON.NET désorientait mes entiers de Json à l'INT64 à la place à l'INT32, donc au lieu d'INT que j'ai mis longtemps et que tout a fonctionné comme il se doit en premier lieu.

Y a-t-il un moyen de préciser que je veux que les propriétés désérialisent dans int?


1 commentaires

La réponse de Jan fournit précisément ce dont vous avez besoin et à partir de là, vous pouvez utiliser int.parse (stressvalue) ou int.tryparse (stressvalue) pour obtenir les valeurs INT.



4
votes

À ce moment-là, vous avez peut-être résolu les problèmes, mais si quelqu'un trébuche sur cela pourrait vous aider.

J'utilise la bibliothèque JSON.NET pour désexeriser des objets hiérarchiques complexes personnalisés. J'ai quelques convertisseurs pour convertir des objets JSON en C # #. p>

Vous pouvez utiliser JSONCONVERTATtributes pour lancer les types de retour pour les propriétés. P>

[JsonConverter(typeof(Int32))] 
public int xpos { get; set; }


0 commentaires

1
votes

J'ai le même problème que c'est parce que je n'ai pas de constructeur par défaut (constructeur avec des paramètres vides) dans ma classe


0 commentaires

1
votes

Je n'avais pas de chance avec une liste de t non plus, pas d'erreur, mais seulement des résultats NULL:

SomeClassList obj = JsonConvert.DeserializeObject<SomeClassList>(jsonstring);

public class SomeClass 
{
   public string SomeProp {get;set;}
   (...)
}

public class SomeClassList 
{
   public List<SomeClass> SomeClass {get;set;}
}


0 commentaires