json en php

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : json en php

Re: json en php

par yann18 » 08 janv. 2015, 20:40

il te suffit de rediriger les objets java convertis en json vers un fichier json ( fichier.json).En voici une implémentation:

Code : Tout sélectionner

public static void main(String[] args) { // TODO Auto-generated method stub JSONObject obj = new JSONObject(); obj.put("name", "mkyong.com"); obj.put("age", new Integer(100)); System.out.print(obj); FileWriter write = null; try { write = new FileWriter("C:\\Users\\lucile\\Desktop\\PROJET 2A\\logiciels\\serveruXAMPPdossier\\htdocs\\json_good\\fichier.json"); write.write(obj.toString() + "\n"); write.flush(); } catch (IOException e) { System.out.println(" exception : " + e.getMessage()); } finally { try { write.close(); } catch (IOException e) { e.printStackTrace(); } } }
Avec le fichier json généré précédemment, tu peux le lire et le parser avec la fonction json_decode() de php.
//script.php situé dans le même dossier que json_good
$json = file_get_contents("json_good/fichier.json");
//affichage de la représentation json
var_dump(json_decode($json));
//parcourir le tableau d'objet json_decode($json) avec une boucle pour effectuer le traitement
Après il me semble beaucoup plus cohérent d'insérer les objets json en BD avec java quitte à les lire ensuite avec php surtout si le programme java fonctionne en standoalone - n'est pas exécutée au sein d'un conteneur.

Re: json en php

par superlucile » 08 janv. 2015, 16:55

je precise que c'est moi qui ai écrit les deux messsages precedents.

Pourquoi la consol m'affiche t elle </ br> ?

Re: json en php

par Invité » 08 janv. 2015, 16:54

voilà mon code en java :

Code : Tout sélectionner

public static void main(String[] args) { // TODO Auto-generated method stub JSONObject json = new JSONObject(); json.put("json", "mkyong.com"); //obj.put("age", new Integer(100)); System.out.print(json); try { URL recup = new URL("http://localhost/json_good/recup_v2.php"); java.net.HttpURLConnection connexion = (HttpURLConnection)recup.openConnection(); connexion.setDoOutput(true); // Pour pouvoir envoyer des données connexion.setRequestMethod("POST"); //envoi de la requête OutputStreamWriter writer = null; writer = new OutputStreamWriter(connexion.getOutputStream()); //conversion en chaine System.out.print(json.toString()); writer.write(json.toString()); writer.flush(); //#2 lecture de la réponse BufferedReader reader=null; reader = new BufferedReader(new InputStreamReader(connexion.getInputStream())); String ligne; while ((ligne = reader.readLine()) != null) { System.out.println(ligne);} } catch (Exception e) { System.out.println(" exception : " + e.getMessage()); }
et le resultat dans la console de eclipse :
{"json":"mkyong.com"}{"json":"mkyong.com"}<br />
<b>Warning</b>: json_decode() expects parameter 1 to be string, object given in <b>C:\Users\lucile\Desktop\PROJET 2A\logiciels\serveruXAMPPdossier\htdocs\json_good\recup_v2.php</b> on line <b>5</b><br />

et mon code de reception en php :
<?php
$json=file_get_contents("php://input");
$raw_json = json_decode($json);
$data=json_decode($raw_json);
mysql_query('insert into tb_user(username) values ('.$data.')');
?>

Re: json en php

par superlucile » 08 janv. 2015, 16:50

comment puis je m'en assurer ?

Re: json en php

par yann18 » 08 janv. 2015, 00:30

bonsoir,
-Côté java
tu peux très bien stocker tes objets json dans un fichier json créé à l'aide de la méthode write() de FileWriter par exemple.Php pourra lire par la suite le fichier json généré.Sinon tu peux envisager comme moyen de stockage une base de données nosql comme mongoDB qui peut accueillir des objets json.

-côté php
tu vas lire le fichier json(json-decode), le parser et faire n'importe quel traitement.

Tu dois t'assurer que les objets java sont bien convertis en json en les affichant dans un terminal par exemple.

Re: json en php

par tof73 » 07 janv. 2015, 22:33

essaie d'afficher $_POST en php, voir ce que cela contient.

json en php

par superlucile » 07 janv. 2015, 22:13

Bonsoir j'essaye de faire une liaison php/ java grâce à mes objets json.

Pour cela j'ai donc envoyer mes objets json en java voilà le code :

Code : Tout sélectionner

public static void main(String[] args) { // TODO Auto-generated method stub JSONObject obj = new JSONObject(); obj.put("name", "mkyong.com"); obj.put("age", new Integer(100)); System.out.print(obj); try { URL recup = new URL("http://localhost/json_good/recup.php"); java.net.HttpURLConnection connexion = (HttpURLConnection)recup.openConnection(); connexion.setDoOutput(true); // Pour pouvoir envoyer des données connexion.setRequestMethod("POST"); //envoi de la requête OutputStreamWriter writer = null; writer = new OutputStreamWriter(connexion.getOutputStream()); writer.write(obj.toString()); writer.flush(); } catch (Exception e) { System.out.println(" exception : " + e.getMessage()); } } }
et j'essaye donc de les recevoir en php voilà ce que j'ai essayé :

if(isset($HTTP_RAW_POST_DATA)){
echo 'OK'
$data = json_decode($HTTP_RAW_POST_DATA);
}

cela ne fonctionne pas et je ne comprends pas pourquoi, de plus je crois que HTTP_RAW n'est pas reconnu

Comment puis je recevoir mon objet json ?