`{
    "student": [{
        "name": "Alice",
        "rno": "187654"
    }]
}`

J'essaye d'obtenir la valeur de rno en utilisant le code PHP

`$data = json_decode($json, true);
 foreach ($data as $item) {
    $name = $item['name'] ;
    $number= $item['rno'] ;
}`
0
Harvinder Singh 20 avril 2017 à 11:31

3 réponses

Meilleure réponse

Le code de @Sahil Gulati est plus parfait et une bonne façon d'analyser le json en php

Voici une autre façon d'analyser les données json en php

<?php

$data = json_decode($json, true);

foreach ($data as $item) {
    foreach ($item as $val) {
        echo $name = $val['name'];
        echo $number = $val['rno'];
    }
}

 ?> 

Le code ci-dessus que j'ai partagé, vous pouvez le comprendre facilement. mais après avoir appris comment analyser les données json en php, vous devriez utiliser la méthode de @Sahil Gulati.

2
Badshah Sahib 20 avril 2017 à 08:42

Vous devriez examiner de plus près la structure des données encodées json. Cela aide à mettre en œuvre une itération propre:

<?php
$input = <<<JSON
{
    "student": [{
        "name": "Alice",
        "rno": "187654"
    }]
}
JSON;
$data = json_decode($input);
$output = [];
array_walk($data->student, function($entry) use (&$output) {
    $output[] = $entry->rno;
});
print_r($output);

La sortie du code ci-dessus est évidemment:

Array
(
    [0] => 187654
)

Le format de sortie a été choisi sous forme de tableau, car la structure json suggère que plusieurs étudiants peuvent être contenus.


Si vous n'êtes directement intéressé que par la propriété rno de la première entrée du tableau student, vous pouvez y accéder directement:

<?php
$input = <<<JSON
{
    "student": [{
        "name": "Alice",
        "rno": "187654"
    }]
}
JSON;
$data = json_decode($input);
var_dump($data->student[0]->rno);

Le résultat de cette variante est évidemment:

string(6) "187654"
0
arkascha 20 avril 2017 à 08:41

Remplacez ceci par:

foreach ($data as $item)

Ceci:

foreach ($data["student"] as $item)

Essayez l'extrait de code ici

Code PHP:

<?php

ini_set('display_errors', 1);
$data = json_decode($json, true);
foreach ($data["student"] as $item)
{
    $name = $item['name'];
    $number = $item['rno'];
}
1
Sahil Gulati 20 avril 2017 à 08:34