IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

C# : Concatener du JSON [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 702
    Par défaut C# : Concatener du JSON
    Salut,

    Je récupère sur un API WEB une chaine JSON constituée comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
        "status": "Success",
        "infoByIp": [
            {
                "ip0": "192.168.1.126",
                "customNetbios": null,
                "listNetbios": [],
                "listMacAddress": [],
                "nameDisplayed": "192.168.1.126",
                "dateFrom": "2022-03-01"
            },
            {
                "ip0": "192.168.1.127",
                "customNetbios": null,
                "listNetbios": [],
                "listMacAddress": [],
                "nameDisplayed": "192.168.1.127",
                "dateFrom": "2022-03-01"
            },
            {
                "ip0": "192.168.1.128",
                "customNetbios": null,
                "listNetbios": [],
                "listMacAddress": [],
                "nameDisplayed": "192.168.1.128",
                "dateFrom": "2022-03-01"
            }
        ]
    }
    La requête HTTP à comme paramètre une condition de Date donc je fais plusieurs fois la même requête en changeant la valeur de la date pour cumuler un résultat sur 15 jours. (l'API ne prends pas les étendues au niveau de la requête)
    Ce qui donnerais pour la requête suivante ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
        "status": "Success",
        "infoByIp": [
            {
                "ip0": "192.168.1.146",
                "customNetbios": null,
                "listNetbios": [],
                "listMacAddress": [],
                "nameDisplayed": "192.168.1.146",
                "dateFrom": "2022-03-02"
            },
            {
                "ip0": "192.168.1.172",
                "customNetbios": null,
                "listNetbios": [],
                "listMacAddress": [],
                "nameDisplayed": "192.168.1.172",
                "dateFrom": "2022-03-02"
            },
            {
                "ip0": "192.168.1.18",
                "customNetbios": null,
                "listNetbios": [],
                "listMacAddress": [],
                "nameDisplayed": "192.168.1.18",
                "dateFrom": "2022-03-02"
            }
        ]
    }
    J'aimerais concaténer tous les "infoByIp" pour ensuite pouvoir les désérialiser en masse.

    Mais je bloque sur la méthodologie à employer.

    Voici ma requête http :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Root? response = await MyClient.GetFromJsonAsync<Root>($"{UrlApi}fluxByIP0?from={strDateFrom}");
    et mes classes pour désérialiser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
        public class InfoByIp
        {
            public string ip0 { get; set; }
            public object customNetbios { get; set; }
            public List<object> listNetbios { get; set; }
            public List<object> listMacAddress { get; set; }
            public string nameDisplayed { get; set; }
            public string dateFrom { get; set; }
        }
     
        public class Root
        {
            public string status { get; set; }
            public List<InfoByIp> infoByIp { get; set; }
        }
    Pourriez vous m'aider ?

  2. #2
    Membre éclairé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 702
    Par défaut
    Je vois que j'ai pas de succès avec cette question, je vais la tourner autrement.

    Comment stocker les réponses de mes requêtes dans une liste ?

    Merci

  3. #3
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 972
    Par défaut
    Tout simplement en déclarant une autre liste et en ajoutant les résultats.
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    List<InfoByIp> infoByIps = new ]List<InfoByIp>();
     
    Puis boucle sur tes dates
    Root? response = await MyClient.GetFromJsonAsync<Root>($"{UrlApi}fluxByIP0?from={strDateFrom}"); 
    if (response != null)
    {
        infoByIps.AddRange(response.infoByIp);
    }

  4. #4
    Membre éclairé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 702
    Par défaut
    Merci c'était AddRange qui me manquait.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Concatener la date au du nom fichier
    Par peppena dans le forum Linux
    Réponses: 5
    Dernier message: 09/02/2009, 12h53
  2. Concaténer deux fichiers Ligne/Ligne avec SH
    Par guiltouf dans le forum Linux
    Réponses: 7
    Dernier message: 22/05/2007, 14h35
  3. [VB6] Concaténation de deux controles RTF facile
    Par bbbastien dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 25/02/2004, 12h58
  4. Concaténation de chaine de caractères
    Par joy dans le forum Linux
    Réponses: 5
    Dernier message: 07/07/2003, 13h03
  5. probleme de concatenation
    Par cyna dans le forum C
    Réponses: 2
    Dernier message: 23/08/2002, 10h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo