【发布时间】:2021-02-11 10:53:17
【问题描述】:
我正在尝试获取 Json 附带的类别的名称。此类别分解为添加。为此,我需要循环获取类别名称。
JSON
[
{
"GUID": "d8fced8f-f751-43a8-a94f-18c613869d29",
"Code": "100101",
"MainUnit": "12",
"ProductCategory": {
"ID": 263,
"Name": "Category 5",
"MainCategory": false,
"ParentCategoryID": 262,
"ParentCategory": {
"ID": 262,
"Name": "Category 4",
"MainCategory": false,
"ParentCategoryID": 153,
"ParentCategory": {
"ID": 153,
"Name": "Category 3",
"MainCategory": false,
"ParentCategoryID": 152,
"ParentCategory": {
"ID": 152,
"Name": "Category 2",
"MainCategory": false,
"ParentCategoryID": 2,
"ParentCategory": {
"ID": 2,
"Name": "Category 1",
"MainCategory": true,
"ParentCategory": null,
"ParentCategoryID": 0
}
}
}
}
},
"Brand": ""
}
]
卷曲
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'http://example.com/json/products',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Accept: application/json',
'Authorization: Bearer gd6yaw7gjiLQ8VeytrpLrl9'
),
));
$response = curl_exec($curl);
curl_close($curl);
$response = json_decode($response);
foreach($response as $return){
function displayRecursiveResults($arrayObject) {
foreach($arrayObject as $key=>$data) {
if(is_array($data)) {
displayRecursiveResults($data);
} elseif(is_object($data)) {
displayRecursiveResults($data);
} else {
echo $data.'<br />';
}
}
}
displayRecursiveResults($return->ProductCategory);
}
在 displayRecursiveResults 函数中,我创建了一个循环来获取类别。在这个循环中,不仅有类别名称,还有其他参数。
输出:
263
Category 5
262
262
Category 4
153
153
Category 3
152
152
Category 2
2
2
Category 1
1
0
我想这样打印:Category 5->Category 4->Category 3->Category 2->Category 1
【问题讨论】:
-
对您尝试使用的 JSON 结构的一些想法会使答案更容易。
-
@NigelRen 是的,我错过了,我现在添加了