目标:我试图通过让用户输入所需的属性来读取anyjson文件的某些部分。
假设我有一个看起来像这样的对象:
"adverts": [
{
"id": "33655628",
"companyInfo": {
"companyName": "Company A",
"homepage": "http://companya.com",
"companyText": null
},
...
]
我想通过变量指定属性名称或"路径"来访问属性。访问第一级($item->$_id)很好,但我如何通过等变量直接访问嵌套属性companyName
$_name = "companyInfo->companyName";
例如:
$_repeat = "adverts";
$_id = "id";
$_name = ??????
foreach($data->$_repeat as $item){
var_dump($item->$_id);
var_dump($item->$_name);
}
编辑:作为澄清:我希望这对任何JSON对象都是通用的!
初步解决方案:我通过@Carlos:建议的循环得到了想要的结果
$_title_a = explode(".",$_title);
$current = $document;
foreach($_title_a as $a){
$current = $current->$a;
}
var_dump($current);
如果有人有更好的建议,我会很高兴听到的。谢谢大家!
您为什么需要这个?
你所要做的就是:
$jsonData = json_decode($jsonString, true);
echo $jsonData['adverts'][0]['companyInfo']['companyName'];
//or
foreach($jsonData['adverts'] as $advert){
echo $advert['companyInfo']['companyName'];
}
您似乎有json数据。。你可以使用下面的代码。。
$obj= json_decode($yourJsonData);
print_r($obj);
foreach ($obj as $key => $value) {
$companyinfo = $value['companyInfo']['companyName'];
}
在foreach循环中,您将获得require键和值。。这只是你的一个例子。。