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

JavaScript Discussion :

Peut-on transformer manuellement du JSON en objet JS ?


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut Peut-on transformer manuellement du JSON en objet JS ?
    Salut,

    Je me pose une question : peut-on transformer manuellement du JSON en objet JS ?
    Je suppose (je n'ai pas encore étudié ça) qu'en général on charge le fichier .JSON (avec AJAX ???) et ensuite on le parse, c'est ça ?

    Bon pour l'instant j'ai voulu le faire manuellement, je m'explique :

    - Je lis le fichier .JSON dans éditeur.
    - J'ajoute devant la première accolade ceci "var obj ="
    - Ensuite j'enregistre le fichier avec une extension .js et j'utilise alors ce fichier avec une balise <script>.

    Apparemment ça fonctionne mais j'aimerais avoir une confirmation, peut-il y avoir des problèmes dans certains cas ?

    Merci.

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut


    Si votre JSON est un texte comme il se doit (sinon c'est déjà un objet JS), il faut écrire let ObjJS = JSON.parse(strJSON);.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Merci.

    Oui justement ça c'est la méthode général que j'avais mentionnée mais moi je voulais savoir ce qu'il en est de le faire "manuellement" comme expliqué dans mon message.

    PS : comment j’obtiens "strJSON" à partir du fichier .JSON ? On utilise une requête AJAX ?

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Je ne comprends pas ce que vous ne comprenez pas ou pire je ne comprends pas la question !

    À toutes fins utiles :

    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    const objJS = {
        titre: 'mon titre'
    };
     
    const strJSON = JSON.stringify(objJS);
     
    const autreObjJS = JSON.parse(strJSON);
     
    console.log(objJS); // {titre: "mon titre"}
    console.log(strJSON); // '{"titre":"mon titre"}'
    console.log(autreObjJS.titre); // mon titre

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Salut,

    J'ai bien compris le code que tu viens de poster mais effectivement cela ne répond pas à mes questions...

    Moi au départ j'ai un fichier avec l'extension .JSON et non une string...

    ---> Mais ton code m'inspire une nouvelle façon de faire la transformation dont je parle manuellement :

    - Je lis le fichier .JSON dans éditeur.
    - J'ajoute des guillemets : une devant la première accolade et une autre après la dernière accolade.
    - J'ajoute devant la première guillemet ceci "var strJSON ="
    - J'enregistre le fichier avec une extension .js
    - J'utilise alors JSON.parse(strJSON) pour convertir la string en objet JS.

    Mais cela me semble un peu plus lourd que la première méthode mais bon pourquoi pas.

  6. #6
    Membre extrêmement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par défaut
    si j'ai bien compris ta manière tarabiscotée de poser question,
    tu cherches tout simplement à remplir une variable json par des données présentes dans un fichier JSON (qui est en réalité un fichier texte, donc un string)
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
          fetch("fichierXY.JSON")
          .then(function(response) { return response.json(); })
          .then(function(r_json) {
            objJSON = r_json;
          });
    sinon attention, ce code est bien sur forcément asynchrone

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je ne comprendspas pourquoi tu insistes sur le mot "manuellement"...

    Citation Envoyé par Beginner. Voir le message
    ...Moi au départ j'ai un fichier avec l'extension .JSON ...
    Ce que je crois avoir compris :


    Dernière modification par Invité ; 06/08/2018 à 10h01.

  8. #8
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Merci et je vous mets à tous les trois un +1 pour vos efforts même si vous n'avez pas compris ma question pourtant toute simple, plus que vous ne semblez le croire...

    Citation Envoyé par psychadelic Voir le message
    si j'ai bien compris ta manière tarabiscotée de poser question
    Mais peut-être que c'est justement parce que tu n'as pas compris ma question que tu trouves ma manière de la poser "tarabiscotée" ??? Pourtant j'ai beau la relire je la trouve claire et détaillée...

    Mais bon je vais essayer de la réexpliquer plus tard...
    Mais si avant cela quelqu'un parvient à la comprendre je le félicite d'avance !

    Citation Envoyé par psychadelic Voir le message
    tu cherches tout simplement à remplir une variable json par des données présentes dans un fichier JSON (qui est en réalité un fichier texte, donc un string)
    Merci. J'ai bien testé ton code rassure toi et j'ai fait des recherches pour comprendre, c'était instructif merci mais je dois quand même vous faire comprendre que justement je ne demandais pas une méthode ou un moyen pour faire cela, je sais bien qu'il y en a plusieurs et la plupart pour ne pas dire toutes utilise probablement à un moment donné une requête pour charger le fichier.

    Non en fait j'ai déjà exposé une méthode et je voulais savoir ce que vous en pensiez, j'ai dit "Apparemment ça fonctionne mais j'aimerais avoir une confirmation, peut-il y avoir des problèmes dans certains cas ?"...

    Qu'est-ce qui n'est pas clair franchement ? Si c'est un point de l'exposé de la méthode eh bien il aurait suffit de demander plus d'explications sur ce point...

    Citation Envoyé par jreaux62 Voir le message
    Je ne comprendspas pourquoi tu insistes sur le mot "manuellement"... :koi:
    Ben au vu des réponses je me demande si je n'aurais pas dû insister plus. Je sais bien comme déjà dit qu'il existe plusieurs méthodes pour faire ce que je veux faire et la plupart pour ne pas dire toutes utilisent probablement à un moment donné une requête pour charger le fichier.

    "manuellement" c'est juste une façon de qualifier la méthode que j'ai exposée par opposition aux autres méthodes... Oui car dans cette méthode je n'utilise pas de code pour faire (automatiquement) la transformation fichier .JSON vers objet JS. Cette méthode est très simple* et donc ça m'arrangerait si elle était fiable d'où la raison pour laquelle j'ai demandé votre avis.

    * Elle est simple :

    1- Dans le sens où je n'ai pas à étudier/utiliser certaines notions que je ne maitrise pas (encore). Je parle des notions que l'on voit dans les exemples et les liens que vous avez postés.

    2- Et aussi parce que je voulais éviter d'avoir à utiliser un serveur local. En effet sous Chrome pour tester le code de psychadelic il a fallu que je passe par un serveur local sinon il nous dit ceci :

    Fetch API cannot load file:///D:/Developpement/.../bookmark.JSON. URL scheme must be "http" or "https" for CORS request.

    J'ai regardé tes liens merci et notamment celui-là Charger un fichier JSON avec AJAX qui cette fois-ci utilise l'objet XMLHttpRequest et Chrome me dit :

    Failed to load file:///D:/Developpement/.../data.json: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.

    Mais en utilisant un serveur local ça marche (et je crois qu'on peut aussi désactiver les sécurités de Chrome je l'ai déjà fais d'ailleurs pour autre chose mais bon...).

    D'ailleurs dans le tuto l'auteur précise lui-même ceci :

    Nous allons maintenant réaliser un système de visualisation de ce catalogue dans un navigateur Firefox. Contrairement à IE ou Chrome, Firefox permet d'accéder à des fichiers locaux en AJAX dans une page locale (file://). Ce code ne fonctionne donc pas dans un autre navigateur ou si on l'exécute via un serveur web (pour des raisons de sécurité évidentes : un site ne peut pas accéder au système de fichiers local d'un utilisateur à sa guise !).
    3- Et enfin parce qu'avec cette méthode je n'ai pas à utiliser de méthode asynchrone ainsi que la gestion qui va avec...

    Voilà, je ne sais pas si c'est plus clair ???

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

Discussions similaires

  1. [Débutant] Transformation JSON a objet JAVA avec Jackson.
    Par geforce dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 17/02/2015, 01h01
  2. Réponses: 0
    Dernier message: 08/04/2009, 18h37
  3. [POO] json et objet javascript
    Par kimcharlene dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/05/2008, 23h10
  4. [VBA-E] - transformé un tableau excel en objet
    Par jimbololo dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 03/06/2006, 15h48
  5. Réponses: 3
    Dernier message: 19/12/2005, 14h11

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