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

Langage Delphi Discussion :

XE2 utilisation du Json


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Juin 2002
    Messages : 57
    Par défaut XE2 utilisation du Json
    Bonjour,

    Je cherche à initialiser un TObjectList à l'aide du Json suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '[{"tac_id":"2","tac_lib":"Analyse"},{"tac_id":"1","tac_lib":"Autre"},{"tac_id":"7","tac_lib":"Production"}]'
    Avez-vous un exemple ?
    Merci

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 087
    Par défaut
    Je pense que l'article JSON de l'aide en ligne devrait t'intéresser et particulièrement à TJSONObject.Parse
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Juin 2002
    Messages : 57
    Par défaut
    Je bloque toujours, j'ai tenté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    json := TJSONObject.Create;
    json.ParseJSONValue(ChaineJSon);
    ainsi que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SetLength(buf,Length(ChaineJSon)*SizeOf(Char));
    Move(ChaineJSon[1],buf[0],Length(buf));
    json := TJSONObject.Create;
    json.parse(buf,0);
    json.Size -> Donne toujours 0

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 087
    Par défaut
    Lit cet autre article Sérialisation des objets utilisateur
    Tu dois pouvoir utiliser un TJSONUnMarshal, cela semble nécessiter des RTTI !
    C'est plutôt orienté DataSnap tout ça ! Je ne sais pas si c'est dédié à une utilisation manuelle !

    Dans la doc ParseJSONValue est une méthode de classe, essaye plutôt ceci !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    json := TJSONObject.ParseJSONValue(ChaineJSon);
    Je ne sais pas si le Parse en mode binaire supporte une chaine Unicode ! Il semble plutôt prévu pour l'UTF8 !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    707
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 707
    Par défaut
    Et avec SuperObject ?
    [ame="http://www.youtube.com/watch?v=G6WuIQTm7hE"]Delphi 2010 RTTI & JSON - YouTube[/ame]

    PS: oh excellent, je ne savais pas que ce forum intégrait directement les vidéos Youtube !

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Juin 2002
    Messages : 57
    Par défaut
    Pas de SuperObject, je voulais juste utiliser ce qui est livré avec XE2.
    En regardant le code exemple qui est fourni dans "RAD Studio\9.0\Samples\Delphi\DataSnap\JSONViewer\...", j'ai pu trouvé jsondoc.pas et jsontreeview.pas.
    Voici comment lire mon Json

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    s := StripNonJson(ChaineJSon); // Vient de jsondoc
    JSONvalue := TJSONvalue.Create;
    JSONvalue := TJSONObject.ParseJSONValue(BytesOf(s),0);
    for i := 0 to TJSONArray(JSONvalue).Size - 1 do
    begin
      JSONObject:=TJSONObject(TJSONArray(JSONvalue).Get(I));
      MonObjectList.Add(TMonObj.Create(StrToInt(JSONObject.Get(0).JsonValue.Value),JSONObject.Get(1).JsonValue.Value));
    end;
    Merci pour votre aide

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

Discussions similaires

  1. Bonne utilisation de json
    Par boo64 dans le forum Général JavaScript
    Réponses: 21
    Dernier message: 21/07/2009, 17h48
  2. [DOM] Utilisation de JSON
    Par Sh4dow49 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 30/10/2008, 15h03
  3. Réponses: 8
    Dernier message: 30/06/2008, 21h06
  4. [Json] Utilisation de JSon
    Par Verboz dans le forum Autres composants
    Réponses: 1
    Dernier message: 09/01/2007, 11h47

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