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 :

[Delphi XE] JSON : Attribut JsonName


Sujet :

Langage Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    390
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 390
    Points : 127
    Points
    127
    Par défaut [Delphi XE] JSON : Attribut JsonName
    Bonjour,

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    uses
    DBXJSON,DBXJSONReflect;
     
    type
      TTest = class(TObject)
      private
        [JSONName('a_code')]
        a : string;
        [JSonName('b_code')]
        b : string;
    Quand je transforme mon object TTest en JSON , j'ai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '{"type":"MonUnite.TTest","id":1,"fields":{"a":"home","b":"ch"}}
    Je n'ai pas "a_code" : "home", "b_code" : "ch".

    De plus est-il possible de cacher la partie "type" mais juste afficher la partie contenu dans "Fields":{

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 726
    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 726
    Points : 5 376
    Points
    5 376
    Par défaut
    Tu utilises quelle version de XE ?
    Il me semble que Data.DBXJSONReflect est l'ancienne méthode et qu'elle avait quelques soucis (notamment mettre des propriété que tu n'as pas demandé)

    As-tu essayé avec REST.Json ?

    Sinon regarde cette discussion :
    https://www.developpez.net/forums/d1...e/json-delphi/

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    390
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 390
    Points : 127
    Points
    127
    Par défaut
    J'utilise la version : Delphi XE donc s'il y a des problèmes concernant les attributs, je vais passer par ISuperObject.
    Car il me génère un json qui ne répond pas à mes besoins

  4. #4
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 448
    Points
    28 448
    Par défaut
    j'ai développé ma propre unité JSON pour XE8 mais je l'utilise aussi sous XE3, il y a des chances qu'elle compile sous XE

    http://lookinside.free.fr/delphi.php?Delphi+XE8+et+JSON


    pour ton problème de nom j'adopte une autre solution qui simplifie beaucoup les choses

    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
     
    type
      TJSONData = record
        a_code: string;
        b_code: string;
      end;
     
      TTest = class
      private
        FData: TJSONData;
        Fc: string;
      public  
        property a: string read FData.a_code write FData.a_code;
        property b: string read FData.b_code write FData.b_code;
        property c: string read Fc_code write Fc;
      end;
    du coup je sérialise TTest.FData qui ne contient que les données que je veux sérialiser et avec le bon nom

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    390
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 390
    Points : 127
    Points
    127
    Par défaut
    Bonjour Paul,

    En effet votre solution convient mais j'ai finalement opté pour ISuperObject (j'ai plus de flexibilité même si structurellement, je ne suis pas un fan niveau syntaxe) , par contre je garde votre solution de côté .

    Merci.

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

Discussions similaires

  1. Delphi et JSON
    Par Paul TOTH dans le forum Contribuez
    Réponses: 3
    Dernier message: 01/09/2015, 10h23
  2. Attribut data-* valeur format json
    Par okoweb dans le forum jQuery
    Réponses: 17
    Dernier message: 25/10/2012, 18h27
  3. Réponses: 7
    Dernier message: 28/11/2010, 19h57
  4. Ajout d'attributs et methodes a plusieurs objets JavaScript avec JSON
    Par zarbi94 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/05/2010, 18h20

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