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

Format d'échange (XML, JSON...) Java Discussion :

Key et valeurs d'une chaine JSON


Sujet :

Format d'échange (XML, JSON...) Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Par défaut Key et valeurs d'une chaine JSON
    Bonjour

    J'ai installé dans un cloud une appli connectée à un service (bdd). Le cloud me renvoie une variable d'environnement qui contient les valeurs de connexion à la bdd dans un format JSON suivant la doc.
    La valeur récupérée est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {"mysql-5.1":[{"name":"jojo","label":"mysql-5.1","plan":"free","tags":["mysql","mysql-5.1","relational","mysql-5.1","mysql"],"credentials":{"name":"dac28a693b4dc4b0bb50a54827108","hostname":"10.0.29.160","host":"10.0.29.160","port":3306,"user":"uOXZrqQLkhT","username":"uOXZrqQLkhT","password":"pSDtWrsFgmo"}}]}
    J'essaie d'extraire les valeurs mais que néni
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    if(System.getenv("VCAP_SERVICES")==null)
    			{
    			 JSONObject mp = new JSONObject( );
    			 JSONObject resultJSON = mp.getJSONObject(System.getenv("VCAP_SERVICES"));
    			 String BddName = resultJSON.getString("name");
    			 String host = resultJSON.getString("host");
    			 String port = resultJSON.getString("port");
    			 String login = resultJSON.getString("username");
    			 String password = resultJSON.getString("pSDtWrsFgmoMP");
    			 System.out.println(BddName +"-"+ host +"-"+ port +"-"+ login +"-"+ password);
    			 bds.setUrl("jdbc:mysql://"+host+":"+port+"/"+BddName+"?autoReconnect=true&jdbcCompliantTruncation=false");
    			 bds.setUsername(login);
    			 bds.setPassword(password);
    Un petit tuyau m'aiderai bien

    Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2012
    Messages
    3 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 3 020
    Par défaut
    Bonjour,

    Vous devez récupérer les objets intermédiaires.

    Ici d'abord récupérer le JSONArray "mysql-5.1"

    Puis récupérer le JSONObject "credentials" qu'il contient.

    Et de cet objet "credentials", vous pourrez récupérer les valeurs de "name", "hostname", etc...

    Un exemple ici : http://www.mkyong.com/java/json-simp...nd-write-json/ à la section 3 : Read JSON from file.

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par Mengué georges Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(System.getenv("VCAP_SERVICES")==null) {
      JSONObject resultJSON = mp.getJSONObject(System.getenv("VCAP_SERVICES"));
    Nieh ?

    "Si ce parpaing n'existe pas, construire mon mur avec."

    Je pense que ça ne marchera pas.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Par défaut
    Bonjour

    Finalement, je ne me suis pas enquiquiné:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    testJson = testJson.split("credentials")[1];
    testJson = testJson.replaceAll("[,}\\]\"]\\ ", "");
    String[] values = testJson.split("[,:]");
    for( int i = 0; i < values.length; i += 2 )
       {p.setProperty( values[i], values[i+1] );}
    ...
    Comme c'est du spécifique à ce Cloud et qu'il n'est exécuté qu'une fois au déploiement, j'ai intégré cette verrue à mon pool de connexion et le tour est joué

    Merci

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

Discussions similaires

  1. Valeur d'une chaine en parametre d'une fonction.
    Par jcpas dans le forum WinDev
    Réponses: 4
    Dernier message: 06/12/2007, 16h13
  2. [W11]Recupérer une valeur dans une chaine
    Par sebo1100 dans le forum WinDev
    Réponses: 7
    Dernier message: 24/09/2007, 15h19
  3. [RegEx] Récupération de valeurs dans une chaine de caractères
    Par Seth77 dans le forum Langage
    Réponses: 1
    Dernier message: 09/08/2007, 09h39
  4. Evaluer la valeur d'une chaine (ex: 47+24*3)
    Par DJ Caësar 9114 dans le forum C
    Réponses: 4
    Dernier message: 24/05/2007, 12h12
  5. extraire une valeur d'une chaine.
    Par Tchaill39 dans le forum Delphi
    Réponses: 2
    Dernier message: 23/10/2006, 17h31

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