如何循环响应以获取所有ID和名称? 如果响应如下:
{
"Data": [
{
"Id": "4321",
"Name": "Dog"
},
{
"Id": "749869",
"Name": "Cat"
}
]
}
我可以使用以下代码获取所有ID和名称:
foreach (json_decode($response->content)->Data as $resp) {
echo $resp->Id;
echo $resp->Name;
}
但是,如果这样的反应:
{
"Data": {
"dog": {
"Id": "4321",
"Name": "Dog"
},
"cat": {
"Id": "749869",
"Name": "Cat"
}
}
}
如何在不知道阵列数量的情况下获取所有ID和名称?谢谢。
答案 0 :(得分:0)
您可以让PHP将所有内容读入(适用的关联)数组。
foreach (json_decode($response->content, true)["Data"] as $resp) { //2nd parameter is to decode as array
echo $resp["Id"];
echo $resp["Name"];
}
或者你可以做懒惰的事情并且只是演员:
foreach ((array)json_decode($response->content)->Data as $resp) {
echo $resp->Id;
echo $resp->Name;
}
答案 1 :(得分:0)
好吧,如果你想将所有id提取到一个数组中(我假设你所有的意思都是一个数组),那么在数据库查询中使用它作为一个例子。我建议你这样做。
query.whereEqualTo("friendsList","");
答案 2 :(得分:0)
<?php
$response = json_decode($json);
foreach($response as $animal => $data)
{
echo $animal;
echo $data->id;
echo $data->name;
}