Réponses:
Facile à presser au citron: http://www.php.net/manual/en/function.json-encode.php
<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode($arr);
?>
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).
Utilisez le natif de PHP json_encode
, comme ceci:
<?php
$arr = array(
array(
"region" => "valore",
"price" => "valore2"
),
array(
"region" => "valore",
"price" => "valore2"
),
array(
"region" => "valore",
"price" => "valore2"
)
);
echo json_encode($arr);
?>
Mise à jour : pour répondre à votre question dans le commentaire. Vous le faites comme ceci:
$named_array = array(
"nome_array" => array(
array(
"foo" => "bar"
),
array(
"foo" => "baz"
)
)
);
echo json_encode($named_array);
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:
$a = array(
array('foo' => 'bar'),
array('foo' => 'baz'));
$json = json_encode($a);
Vous donne:
[{"foo":"bar"},{"foo":"baz"}]
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_assoc
function, qui retournent également un tableau associatif.
$associativeArray = array();
$associativeArray ['FirstValue'] = 'FirstValue';
... etc.
Après ça.
json_encode($associativeArray);
également pour le tableau, vous pouvez utiliser une annotation courte:
$arr = [
[
"region" => "valore",
"price" => "valore2"
],
[
"region" => "valore",
"price" => "valore2"
],
[
"region" => "valore",
"price" => "valore2"
]
];
echo json_encode($arr);
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.
$array[] = array('power' => trim("Some value"), 'time' => "time here" );
Et puis encodez le tableau avec la fonction d'encodage json
json_encode(array('newvalue'=> $array), 200)
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.
<?php
$username=urldecode($_POST['log_user']);
$user="select * from tbl_registration where member_id= '".$username."' ";
$rsuser = $obj->select($user);
if(count($rsuser)>0)
{
// (Status if 2 then its expire) (1= use) ( 0 = not use)
$cheknew="select name,ldate,offer_photo from tbl_offer where status=1 ";
$rscheknew = $obj->selectjson($cheknew);
if(count($rscheknew)>0)
{
$nik=json_encode($rscheknew);
echo "{\"status\" : \"200\" ,\"responce\" : \"201\", \"message\" : \"Get Record\",\"feed\":".str_replace("<p>","",$nik). "}";
}
else
{
$row2="No Record Found";
$nik1=json_encode($row2);
echo "{\"status\" : \"202\", \"responce\" : \"604\",\"message\" : \"No Record Found \",\"feed\":".str_replace("<p>","",$nik1). "}";
}
}
else
{
$row2="Invlid User";
$nik1=json_encode($row2);
echo "{\"status\" : \"404\", \"responce\" : \"602\",\"message\" : \"Invlid User \",\"feed\":".str_replace("<p>","",$nik1). "}";
}
?>
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 class
class 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;
}
function add($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();
?>
Sortira:
Array
(
[locations] => Array
(
[0] => Array
(
[location] => TestLoc1
)
[1] => Array
(
[location] => TestLoc2
)
[2] => Array
(
[location] => TestLoc3
)
)
)
{"locations":[{"location":"TestLoc1"},{"location":"TestLoc2"},{"location":"TestLoc3"}]}
Pour itérer, convertissez en un objet normal:
$myObj = $jsonObj->toArray();
Ensuite:
foreach($myObj["locations"] as $locationObj){
echo $locationObj["location"] ."<br />";
}
Les sorties:
TestLoc1
TestLoc2
TestLoc3
Accès direct:
$location = $myObj["locations"][0]["location"];
$location = $myObj["locations"][1]["location"];
Un exemple pratique:
// return a JSON Object (jsonOBJ) from the rows
function ParseRowsAsJSONObject($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();
}