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

VBScript Discussion :

Convertir un Dictionary en JSON


Sujet :

VBScript

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 9
    Par défaut Convertir un Dictionary en JSON
    Bonjour à tous,

    J'ai besoin de transformer un gros Dictionary en JSon (qui est de type string (si je ne me trompe pas ))
    J'ai eu beau retourner tout le net j''ai trouvé plein de convertisseur entre différent type mais jamais Dictionary --> Json
    Le second problème est que je n'ai pas un niveau suffisant pour coder un convertisseur (Je viens juste de commencer en VBA )

    Est-ce qu'il existe une fonction dédiée à cette manipulation ? Il y a t-il une astuce ?

    Merci de votre aide

    Un stagiaire perdu

  2. #2
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 302
    Par défaut
    salut,
    J'ai eu beau retourner tout le net j''ai trouvé plein de convertisseur entre différent type mais jamais Dictionary --> Json
    tu es bien sûr.
    j'ai lu le code en diagonale, mais il me semble bien que ASPJSON accepte les objets dictionnaires en entrée
    à tester
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 9
    Par défaut
    Alors j'ai bien utilisé ton module de classe que tu ma conseillé, malheureusement quand je passe mon Dictionary au "toJSON", il me dit : "Objet requis"

  4. #4
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 302
    Par défaut
    montre nous ton code avec le n° de ligne où se déclenche l'erreur
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 9
    Par défaut Le Code
    Voici une partie de mon code:

    "params(1)" est un Variant/Object/Dictionary, il contient un peu plus de 200 Items.

    Et quand je le passe en paramètres du Module de Classe ASPJSON
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    issues = ASPJSON.toJSON(params(1))
    "Erreur d'exécution '424': Objet requis"


  6. #6
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 302
    Par défaut
    alors je répète : quelle est la ligne de la classe aspjson qui déclenche cette erreur ?
    et que donne la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox VarType(params(1))
    à insérer juste avant l'appel de la méthode toJSON ?
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  7. #7
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 9
    Par défaut
    Alors la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Vartype(params(1))
    me donne le résultat : 9

    Sinon le toJSON qui ressemble a sa :
    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
        Public Function toJSON(vPair)
            Select Case VarType(vPair)
                Case 0  ' Empty
                    toJSON = "null"
                Case 1  ' Null
                    toJSON = "null"
                Case 7  ' Date
                    ' toJSON = "new Date(" & (vPair - CDate(25569)) * 86400000 & ")"    ' let in only utc time
                    toJSON = """" & CStr(vPair) & """"
                Case 8  ' String
                    toJSON = """" & jsEncode(vPair) & """"
                Case 9  ' Object
                    Dim bFI, i
                    bFI = True
                    If vPair.Kind Then toJSON = toJSON & "[" Else toJSON = toJSON & "{"
                    For Each i In vPair.Collection
                        If bFI Then bFI = False Else toJSON = toJSON & ","
     
                        If vPair.Kind Then
                            toJSON = toJSON & toJSON(vPair(i))
                        Else
                            If QuotedVars Then
                                toJSON = toJSON & """" & i & """:" & toJSON(vPair(i))
                            Else
                                toJSON = toJSON & i & ":" & toJSON(vPair(i))
                            End If
                        End If
                    Next
                    If vPair.Kind Then toJSON = toJSON & "]" Else toJSON = toJSON & "}"
                Case 11
                    If vPair Then toJSON = "true" Else toJSON = "false"
                Case 12, 8192, 8204
                    toJSON = RenderArray(vPair, 1, "")
                Case Else
                    toJSON = Replace(vPair, ",", ".")
            End Select
        End Function
    ...ne veux pas prendre en paramètre mon argument (params(1)) (Il ne rentre pas dans la fonctions )

    Pourtant comme tu me le fait remarquer il y a bien une "Case : 9"

    Je ne comprends plus rien

  8. #8
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 302
    Par défaut
    Il ne rentre pas dans la fonctions
    ton objet doit être trop gros...
    bon, blague à part, et ce n° de ligne ?
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  9. #9
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 9
    Par défaut
    L'erreur arrive à la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    issues = ASPJSON.toJSON(params(1))
    J'ai mis des arrêts dans le "toJSON" mais mon curseur ne rentre même pas dedans, il se stoppe à l'appel de la fonction

  10. #10
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 9
    Par défaut Thinks
    Ok, C'est bon, je n'instancier pas la classe ...

    Grand Merci a toi omen999 ^^


  11. #11
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    1 616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 616
    Par défaut
    salut

    Citation Envoyé par omen999 Voir le message
    salut,

    tu es bien sûr.
    j'ai lu le code en diagonale, mais il me semble bien que ASPJSON accepte les objets dictionnaires en entrée
    à tester
    J'ai jeté un oeil, et ce n'est pas du tout sur
    je crois l'avoir déjà testé pour mes propres besoins, et il ne me semble pas que cela supporte les objets dictionnary.

    par contre j'utilise celle-ci : http://www.webdevbros.net/2008/07/10...n-15-released/

    qui fonctionne parfaitement

  12. #12
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 302
    Par défaut
    j'ai ouvert le second oeil. effectivement la gestion des objets dictionnaires n'est pas directe
    il faut alimenter le dictionnaire interne de la classe... pas top mais ça marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Set oDic = CreateObject("Scripting.Dictionary")
    oDic.Add "C","Café"
    oDic.Add "P","Photocopies"
    oDic.Add "S","Stagiaire"
     
     
    Set oJs = jsObject
    aK = oDic.Keys
    aI = oDic.Items
    For i =0 to oDic.Count-1 
      oJs.Pair(aK(i)) = aI(i)
    Next
    MsgBox oJs.jsString
    ps : merci pour le lien que je vais tester
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  13. #13
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 9
    Par défaut
    Ok je vais tester celui-ci aussi, merci fredoche

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

Discussions similaires

  1. Convertir requete en sortie json
    Par LFC dans le forum Général Python
    Réponses: 1
    Dernier message: 04/01/2012, 23h52
  2. convertir une chaine en json
    Par enzostar dans le forum Langage
    Réponses: 0
    Dernier message: 04/05/2010, 11h54
  3. Convertir Properties en JSon. Je bloque sur un truc
    Par Invité dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 30/11/2009, 20h31
  4. Réponses: 5
    Dernier message: 14/09/2008, 23h14

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