Il y a un article andyrusterholz at g-m-a-i-l dot c-o-msur la page susmentionnée qui peut également gérer des tableaux imbriqués complexes (si c'est votre truc).
Dang, mon pote, tu as été instantané sur cette réponse =). J'étais enthousiasmé par la question facile =)
Calvin Froedge
2
J'ai ce code while ($ row = mysql_fetch_assoc ($ query_insert)) {$ control = array ('regione' => $ row ["regione"], 'totale' => $ row ["prezzi"]); } print (json_encode (% contrôle)); mais retun {"regione": "Puglia", "totale": "5.15"} not [{..}, {..}]
Mimmo
2
Ajoutez 1 pour la référence citron. :-)
ban-geoengineering
Je l'ai fait mais la réponse que j'obtiens en utilisant la fonction var_dumb est la suivante. Comment puis-je me débarrasser de string (59)? string (59) "[{" result ":" success "}, {" message ":" Données mises à jour! "}]"
Excusez-moi mais si je veux {"nome_array": [{"foo": "bar"}, {"foo": "baz"}]} ??
Mimmo
41
Simple: créez simplement un tableau PHP (imbriqué) et appelez- json_encodele. Les tableaux numériques se traduisent en listes JSON ( []), les tableaux associatifs et les objets PHP se traduisent en objets ( {}). Exemple:
Excusez-moi mais si je veux {"nome_array": [{"foo": "bar"}, {"foo": "baz"}]} ??
Mimmo
2
Relisez mon message. Si vous voulez quelque chose à traduire en un objet JSON, faites-en un tableau associatif en PHP (où les clés sont des chaînes). Si vous voulez qu'il se traduise en une liste JSON, faites-en un tableau simple (avec des clés entières implicites). La valeur de chaque élément du tableau peut à son tour être un tableau, ce que vous voulez.
tdammers
Merci cela a également répondu à ma question.
Shawn Wernig
Je l'ai fait mais la réponse que j'obtiens en utilisant la fonction var_dumb est la suivante. Comment puis-je me débarrasser de string (59)? string (59) "[{" result ":" success "}, {" message ":" Données mises à jour! "}]"
James Smith
13
La meilleure façon de procéder à chaque fois pour créer json en php est de d'abord convertir les valeurs dans le tableau ASSOCIATIVE.
Après cela, encodez simplement en utilisant json_encode($associativeArray). Je pense que c'est le meilleur moyen de créer json en php parce que chaque fois que nous récupérons une requête SQL sous forme de résultat en php, la plupart du temps, nous obtenons des valeurs en utilisant fetch_assocfunction, qui retournent également un tableau associatif.
C'est ainsi que je peux faire avec l'aide de la solution donnée par @tdammers ci-dessous. La ligne suivante sera placée à l'intérieur de la boucle foreach.
Le simple fait de taper cette seule ligne vous donnerait un tableau json,
echo json_encode($array);
Normalement, vous utilisez json_encodepour lire les données d'une application iOS ou Android. alors assurez-vous de ne pas faire écho à autre chose que le tableau json précis.
J'ai créé une classe jsonOBJ simple et brute à utiliser pour mon code. PHP n'inclut pas les fonctions json comme le font JavaScript / Node. Vous devez itérer différemment, mais cela peut être utile.
<?php
// define a JSON Object classclass jsonOBJ {private $_arr;private $_arrName;function __construct($arrName){
$this->_arrName = $arrName;
$this->_arr[$this->_arrName]= array();}function toArray(){return $this->_arr;}function toString(){return json_encode($this->_arr);}function push($newObjectElement){
$this->_arr[$this->_arrName][]= $newObjectElement;// array[$key]=$val;}functionadd($key,$val){
$this->_arr[$this->_arrName][]= array($key=>$val);}}// create an instance of the object
$jsonObj =new jsonOBJ("locations");// add items using one of two methods
$jsonObj->push(json_decode("{\"location\":\"TestLoc1\"}",true));// from a JSON String
$jsonObj->push(json_decode("{\"location\":\"TestLoc2\"}",true));
$jsonObj->add("location","TestLoc3");// from key:val pairs
echo "<pre>". print_r($jsonObj->toArray(),1)."</pre>";
echo "<br />". $jsonObj->toString();?>
// return a JSON Object (jsonOBJ) from the rowsfunctionParseRowsAsJSONObject($arrName, $rowRS){
$jsonArr =new jsonOBJ($arrName);// name of the json array
$rows = mysqli_num_rows($rowRS);if($rows >0){while($rows >0){
$rd = mysqli_fetch_assoc($rowRS);
$jsonArr->push($rd);
$rows--;}
mysqli_free_result($rowRS);}return $jsonArr->toArray();}
Réponses:
Facile à presser au citron: http://www.php.net/manual/en/function.json-encode.php
Il y a un article
andyrusterholz at g-m-a-i-l dot c-o-m
sur la page susmentionnée qui peut également gérer des tableaux imbriqués complexes (si c'est votre truc).la source
Utilisez le natif de PHP
json_encode
, comme ceci:Mise à jour : pour répondre à votre question dans le commentaire. Vous le faites comme ceci:
la source
Simple: créez simplement un tableau PHP (imbriqué) et appelez-
json_encode
le. Les tableaux numériques se traduisent en listes JSON ([]
), les tableaux associatifs et les objets PHP se traduisent en objets ({}
). Exemple:Vous donne:
la source
La meilleure façon de procéder à chaque fois pour créer json en php est de d'abord convertir les valeurs dans le tableau ASSOCIATIVE.
Après cela, encodez simplement en utilisant
json_encode($associativeArray)
. Je pense que c'est le meilleur moyen de créer json en php parce que chaque fois que nous récupérons une requête SQL sous forme de résultat en php, la plupart du temps, nous obtenons des valeurs en utilisantfetch_assoc
function, qui retournent également un tableau associatif.... etc.
Après ça.
la source
également pour le tableau, vous pouvez utiliser une annotation courte:
la source
C'est ainsi que je peux faire avec l'aide de la solution donnée par @tdammers ci-dessous. La ligne suivante sera placée à l'intérieur de la boucle foreach.
Et puis encodez le tableau avec la fonction d'encodage json
la source
Le simple fait de taper cette seule ligne vous donnerait un tableau json,
echo json_encode($array);
Normalement, vous utilisez
json_encode
pour lire les données d'une application iOS ou Android. alors assurez-vous de ne pas faire écho à autre chose que le tableau json précis.la source
la source
la source
J'ai créé une classe jsonOBJ simple et brute à utiliser pour mon code. PHP n'inclut pas les fonctions json comme le font JavaScript / Node. Vous devez itérer différemment, mais cela peut être utile.
Sortira:
Pour itérer, convertissez en un objet normal:
Ensuite:
Les sorties:
TestLoc1
TestLoc2
TestLoc3
Accès direct:
Un exemple pratique:
la source