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 :

Parser du Json en C#


Sujet :

C#

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 3
    Points : 5
    Points
    5
    Par défaut Parser du Json en C#
    Salut tout le monde

    J'ai actuellement un problème sur une application que je développe en C#.
    Cette application doit chercher des informations dans une base de données en ligne ("Parse", pour ceux qui connaissent), les récupérer et les afficher dans un fichier Excel.

    Le logiciel se compose d'un bouton "Synchronisation" qui permet la récupération et le traitement des données, ainsi qu'une barre de chargement.

    Première question : j'utilise actuellement une WPF Application sur Visual Studio pour travailler. Puis-je utiliser une Windows Form Application ?
    Y-a-t-il encore un meilleur choix ? Es-ce que ça importe vraiment ?

    J'ai réussi à récupérer les informations de la BDD en Json et ça donne cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"results":[{"Examens":[{"date":{"__type":"Date","iso":"2014-05-06T12:32:13.826Z"},"valeur":78.87324},{"date":{"__type":"Date","iso":"2014-05-06T12:34:45.126Z"},"valeur":97.71127},{"date":{"__type":"Date","iso":"2014-05-06T12:43:51.472Z"},"valeur":76.76057},{"date":{"__type":"Date","iso":"2014-05-16T14:39:05.948Z"},"valeur":55.80986},{"date":{"__type":"Date","iso":"2014-05-22T13:08:23.024Z"},"valeur":71.83099}],"Mobile":"01","Nom":"Dionisos","Notifications":["0h00","2h00","4h00","6h00","8h00"],"allowed":false,"createdAt":"2014-05-01T15:35:47.187Z","updatedAt":"2014-05-22T13:51:25.293Z","objectId":"5vBJB7TOiQ"}]}
    Mon but est de récupérer les date, leur valeur associée ainsi que le nom.
    Je parse donc mon message en utilisant JObject.Parse() avec les librairies Newtonsoft.Json et Newtonsoft.Json.Linq

    J'ai réussi à récupérer le nom, mais impossible de récupérer les dates et valeurs ! J'ai besoin d'aide

    Voilà mon code pour l'instant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    JObject jsonVal = JObject.Parse(dataParse) as JObject;
    dynamic results = jsonVal;
     
    foreach (dynamic result in results["results"])
    {
         string Name = (string)result["Nom"];
         Label2.Content = Name;
    }
    Je sais que c'est peu comme code et ça fait plutôt flemmard qui n'a rien regardé sur le net.
    Mais j'ai regardé des exemples sur plusieurs sites (une bonne dizaine, voir vingtaine) et très peu contiennent dans leurs exemples une données autre que "results" en Array (alors qu'ici, j'ai "Examens" en plus, ce qui pose soucis !). Et si elles en contiennent, la méthode ne marche pas avec mon json.
    ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string value =(string) results["Examens"]["valeur"];
    j'ai trouvé ça sur un site, mais ça ne marche pas sur mon code.

    Des idées?

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 3
    Points : 5
    Points
    5
    Par défaut
    Finalement, après avoir retourner le problème dans tous les sens, j'ai trouvé la solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    JObject jsonVal = JObject.Parse(dataParse) as JObject;
     
    string val = (string)jsonVal["results"][0]["Examens"][0]["valeur"];
    Label2.Content = val;
    Avec ça, la valeur s'affiche correctement !
    Désolé pour le dérangement ! Je laisse le post au cas où quelqu'un aurait un jour la même question

    Je veux bien la réponse à ma première question en revanche

  3. #3
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2013
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2013
    Messages : 156
    Points : 218
    Points
    218
    Par défaut
    Bonjour,
    Si tu doit utiliser des données au format JSON je te conseil : http://json2csharp.com/

    Première question : j'utilise actuellement une WPF Application sur Visual Studio pour travailler. Puis-je utiliser une Windows Form Application ?
    Y-a-t-il encore un meilleur choix ? Es-ce que ça importe vraiment ?
    Pour le choix entre WF et WPF, c'est une question de graphisme, tu peu très bien utiliser l'un ou l'autre, tout dépend de l'importance du graphisme dans ton application. Si c'est une appli interne et que n'as pas a t’embêter a faire de jolie forms go WF

  4. #4
    Membre éprouvé Avatar de yonpo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2010
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 617
    Points : 947
    Points
    947
    Par défaut
    WPF n'offre pas qu'une amélioration visuelle => http://www.developpez.net/forums/d10...windows-forms/

  5. #5
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2013
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2013
    Messages : 156
    Points : 218
    Points
    218
    Par défaut
    Bonjour,

    Tout dépend de ton l'application, dans son cas je ne pense pas que le WPF lui permette de contourner un problème en WF,
    De plus le lien que tu fournis met en évidence le fait que BLEND est un outils très utile au WTF, or si dionisos94 à une version express, il n'y aura pas accès.

    Je suis tout a fait d'accord avec toi sur ce que tu à dit Yonpo, mais dans le cas présent, je ne vois pas l'amélioration qu’apporterais le WPF ( si ce n'est visuel) et peut être un peu pour la gestion de l'affichage des excels,mais encore.

Discussions similaires

  1. Parser un JSON avec des variables avec des "-" et des ":"
    Par Quentin33 dans le forum Windows Phone
    Réponses: 2
    Dernier message: 22/05/2011, 01h04
  2. Parser du json
    Par nox73 dans le forum Langage
    Réponses: 4
    Dernier message: 19/05/2011, 19h52
  3. Parser page JSON en PHP
    Par tonymx15 dans le forum Langage
    Réponses: 4
    Dernier message: 08/04/2011, 00h55
  4. [Prototype] Parser du JSON aprés une requête Ajax
    Par Gregory.M dans le forum Bibliothèques & Frameworks
    Réponses: 18
    Dernier message: 16/06/2010, 10h21
  5. parser un json
    Par Henry9 dans le forum jQuery
    Réponses: 4
    Dernier message: 18/05/2009, 21h13

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