`{
"student": [{
"name": "Alice",
"rno": "187654"
}]
}`我试图使用PHP代码获得rno的值
`$data = json_decode($json, true);
foreach ($data as $item) {
$name = $item['name'] ;
$number= $item['rno'] ;
}`发布于 2017-04-20 08:42:44
@Sahil Gulati的代码更完美,也是在php中解析json的正确方法
下面是在php中解析json数据的另一种方法
<?php
$data = json_decode($json, true);
foreach ($data as $item) {
foreach ($item as $val) {
echo $name = $val['name'];
echo $number = $val['rno'];
}
}
?> 以上代码,我已经分享了,您可以很容易理解。但是,在了解了如何在php中解析json数据之后,您应该使用@Sahil Gulati的方法。
发布于 2017-04-20 08:34:02
将此更改为:
foreach ($data as $item)这里:
foreach ($data["student"] as $item)PHP代码:
<?php
ini_set('display_errors', 1);
$data = json_decode($json, true);
foreach ($data["student"] as $item)
{
$name = $item['name'];
$number = $item['rno'];
}发布于 2017-04-20 08:41:30
您应该更仔细地查看json编码数据的结构。这有助于实现干净的迭代:
<?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);显然,上述代码的输出是:
Array
(
[0] => 187654
)输出格式已被选择为数组,因为json结构表明可以包含多个学生。
如果您只直接感兴趣于student数组中第一个条目的student属性,那么您可以直接访问它:
<?php
$input = <<<JSON
{
"student": [{
"name": "Alice",
"rno": "187654"
}]
}
JSON;
$data = json_decode($input);
var_dump($data->student[0]->rno);显然,该变体的输出是:
string(6) "187654"https://stackoverflow.com/questions/43514198
复制相似问题