【发布时间】:2016-08-11 20:37:18
【问题描述】:
我正在做一些 JSON 解码 - 我按照本教程进行了很好的解释 - How To Parse JSON With PHP
还有我用的PHP代码
<?php
$string='{"person":[
{
"name":{"first":"John","last":"Adams"},
"age":"40"
},
{
"name":{"first":"Thomas","last":"Jefferson"},
"age":"35"
}
]}';
$json_a=json_decode($string,true);
$json_o=json_decode($string);
// array method
foreach($json_a[person] as $p)
{
echo '
Name: '.$p[name][first].' '.$p[name][last].'
Age: '.$p[age].'
';
}
// object method
foreach($json_o->person as $p)
{
echo '
<br/> Name: '.$p->name->first.' '.$p->name->last.'
Age: '.$p->age.'
';
}
?>
它工作正常...但我担心我只需要 Thomas 的姓氏和年龄的详细信息。我需要处理这个以仅提取某些特征,而不是所有对象。
【问题讨论】:
-
这与 JSON 无关,也与
decode无关。这是检索 PHP 数据结构的一部分的问题。另外,不要将变量命名为json_a或json_o,因为它们不是 JSON。您的$string是唯一的 JSON 字符串。 -
你的问题真的是这样吗:我为什么不在循环中添加
if ($p->name->first === 'Thomas') {? -
谢谢。我有一个 JSON 文件 - [raw.githubusercontent.com/mledoze/countries/master/… - 我只需要检索一个国家的货币.. 不完全.. 你说我需要使用'if ()'
-
是的,看我的回答。