1. #1
    Membre régulier
    Homme Profil pro
    Symfony - CMS Wordpress - Zend
    Inscrit en
    septembre 2011
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Symfony - CMS Wordpress - Zend
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2011
    Messages : 290
    Points : 88
    Points
    88

    Par défaut [TS] Classe et fichier JSON

    Salut A tous,

    Après plusieurs ébauche en es6 j'ai commencé à travailler sur typescript.

    Sur les grande lignes je voudrait transformer un fichier JSON sur plusieurs niveaux(Recursivité)

    Je l'ai fait avec es6 et un map(finalement pas concluent pour moi) vu que je travail avec typescript.

    idealement je voudrait créer un classe pour cela voici ma première classe pour mes type primitfs:

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    export namespace ValueModule{
     
        export interface IValue {
            _keyValue:string;
            _userValue:string;
        }
        export class Value implements IValue{
     
     
            _keyValue : string;
            _userValue : string;
     
     
            constructor(keyValue: string, userValue: string) {
                this._keyValue = keyValue;
                this._userValue = userValue;
            }
     
     
            get keyValue(): string {
                return this._keyValue;
            }
     
            set keyValue(value: string) {
                this._keyValue = value;
            }
     
            get userValue(): string {
                return this._userValue;
            }
     
            set userValue(value: string) {
                this._userValue = value;
            }
     
     
     
        }
     
    }
    et pour ma classe pour les types un a plusieurs:

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    import {ValueModule} from "./Value";
     
    export namespace ValueArrayModule{
     
        import Value = ValueModule.Value;
     
        export interface IValuesArray{
            _keyValue?:string;
            _arrayValues?:Array<Value>;
        }
     
        export class ValueArray implements IValuesArray{
     
            public _keyValue : string;
            public _arrayValues : Array<Value>;
            constructor(keyValue:string,arrayValues:Array<Value>)
            {
                this._keyValue = keyValue;
                this._arrayValues = arrayValues;
            }
     
     
            get keyValue(): string {
                return this._keyValue;
            }
     
            set keyValue(value: string) {
                this._keyValue = value;
            }
     
            get arrayValues(): Array<Value> {
                return this._arrayValues;
            }
     
            set arrayValues(value: Array<Value>) {
                this._arrayValues = value;
            }
        }
    }
    et ma fonction dont je n'arrive pas a transposer le tous en modèle objets:
    je sais si mes instanciation sont exact ou non..

    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
     
    function compare(baseKeys,mPerm)
    {
        mPerm={};
        Object.keys(baseKeys).forEach(key =>{
            if(baseKeys.hasOwnProperty(key))
            {
                if(typeof baseKeys[key] !== 'object')
                {
                    mPerm= new Value(key, baseKeys[key]);
                }
                else
                {
                    compare(baseKeys[key],mPerm);
                    mPerm = new ValueArray(key,baseKeys[key]);
                }
            }
        });
        return mPerm
    }
    j'ai une erreur de ce type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TypeError: Cannot read property 'Value' of undefined

  2. #2
    Membre régulier
    Homme Profil pro
    Symfony - CMS Wordpress - Zend
    Inscrit en
    septembre 2011
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Symfony - CMS Wordpress - Zend
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2011
    Messages : 290
    Points : 88
    Points
    88

    Par défaut cette methode est impossible..

    Il ne faut pas creer de classe a cette fin

    car un fichier de traduction peux evoluer dans le temps

    alors qu'un objet est statique au niveaux de ces clés..

    Il faut passer par SET ou MAP..

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

Discussions similaires

  1. [AJAX] recupérer plusieur fichiers JSON
    Par Emcy dans le forum AJAX
    Réponses: 2
    Dernier message: 04/10/2007, 15h41
  2. structure fichier JSON
    Par Emcy dans le forum JavaScript
    Réponses: 2
    Dernier message: 15/03/2007, 09h51
  3. Différentes classes et fichiers
    Par herlock dans le forum C++
    Réponses: 5
    Dernier message: 03/03/2007, 12h35
  4. Réponses: 1
    Dernier message: 26/11/2006, 20h05
  5. Des .class en fichier exe
    Par sandytarit dans le forum Langage
    Réponses: 2
    Dernier message: 09/09/2006, 21h24

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