0
votes

Comment désérialiser Json à une classe imbriquée en utilisant json.net?

J'ai JSON:

AllData Data = new AllData();
Data = Newtonsoft.Json.JsonConvert.DeserializeObject<AllData>(JSON);


2 commentaires

Vos noms de propriétés ne correspondent pas aux données JSON


@Burnsba vous s'il vous plaît dites-moi quelle ligne correction?


4 Réponses :


1
votes
     var res = Data = Newtonsoft.Json.JsonConvert.DeserializeObject<RootObject>(JSON);


    public class Customer
    {
        public string phone { get; set; }
    }



    public class Message
    {
        public string type { get; set; }
    }

    public class RootObject
    {
        public List<Customer> customer { get; set; }
        public List<Message> message { get; set; }
    }

0 commentaires

1
votes

Vous pouvez utiliser VS Menu Modifier -> Coller Special -> Coller Json comme classe et voyez comment votre JSON devrait ressembler. En fait, il ressemble à xxx

Vous devez mettre à jour les noms de propriété ou les décorer avec jsonproperty attribut. Vous devez également spécifier Getter et Setter pour les propriétés de collecte


0 commentaires

1
votes

Le convertisseur JSON recherche une propriété appelée client code> et une propriété appelée message code>. Mais aucun de ceux qui n'existent dans votre catégorie code> AllData ​​code>.

Observez, si vous avez des données telles que P> xxx pré>

, puis sérialisation p> xxx pré>

donnera à la chaîne p>

AllData ad3 = Newtonsoft.Json.JsonConvert.DeserializeObject<AllData>("{\"customer\":[{\"phone\":\"9868133331\"},{\"phone\":\"9971714514\"}],\"message\":[{\"type\":\"reminder\"},{\"type\":\"reminder\"}]}");


0 commentaires

0
votes

J'utilise JsonConvert pour désérialiser un Json à cette structure d'objet: xxx pré>

et la structure JSON: p> xxx pré>

et l'objet désériorize : Nettoyage manuellement de la chaîne dans le contenu du résultat. P>

var resp = response.Content.ReadAsStringAsync().Result;
resp = resp.Trim("\"".ToCharArray());
resp = resp.Replace("\\", "");
ResPLP resplp = JsonConvert.DeserializeObject<ResPLP>(resp);
codres = resplp.data;


0 commentaires