Depuis le code PHP, je veux créer un tableau json:
[
{"region":"valore","price":"valore2"},
{"region":"valore","price":"valore2"},
{"region":"valore","price":"valore2"}
]
Comment puis-je faire ceci?
Squeezy au citron facile: 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 par 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 code json_encode
natif de PHP, comme ceci:
<?php
$arr = array(
array(
"region" => "valore",
"price" => "valore2"
),
array(
"region" => "valore",
"price" => "valore2"
),
array(
"region" => "valore",
"price" => "valore2"
)
);
echo json_encode($arr);
?>
Update: Pour répondre à votre question dans le commentaire. Vous le faites comme ça:
$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
dessus. Les tableaux numériques se traduisent en listes JSON ([]
), les tableaux associatifs et les objets PHP se traduisant 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 d’aller à chaque fois pour créer JSON en php est de convertir d’abord les valeurs du tableau ASSOCIATIVE.
Après cela, il vous suffit d’encoder à l’aide de json_encode($associativeArray)
. Je pense que c'est la meilleure façon de créer JSON en php car chaque fois que nous récupérons une requête SQL sous forme de résultat dans php, la plupart du temps, nous obtenons des valeurs en utilisant la fonction fetch_assoc
, qui renvoie également un tableau associatif.
$associativeArray = array();
$associativeArray ['FirstValue'] = 'FirstValue';
...etc.
Après ça.
json_encode($associativeArray);
aussi pour array vous pouvez utiliser une annotattion courte:
$arr = [
[
"region" => "valore",
"price" => "valore2"
],
[
"region" => "valore",
"price" => "valore2"
],
[
"region" => "valore",
"price" => "valore2"
]
];
echo json_encode($arr);
$json_data = '{ "Languages:" : [ "English", "Spanish" ] }';
$lang_data = json_decode($json_data);
var_dump($lang_data);
C'est ce que je suis capable de 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 encoder le tableau avec la fonction d'encodage JSON
json_encode(array('newvalue'=> $array), 200)
<?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). "}";
}
?>