我需要显示JSON文件的所有元素/对象。目前,我只能调用一个偏置(启动索引(和限制的端点。您可以获得的最大元素数为100(限制(。我想知道我如何获取JSON文件的所有元素并将它们存储在数组中,而不知道JSON文件中有多少个元素。
最初,我试图将前500个元素保存在数组中。问题在于,该数组的输出大小为5而不是500,因为getElements端点返回100个元素的列表,因此数组实际存储的实际存储在每个索引上是100个元素。因此,例如,json_array [0]包含前100个元素,json_array [2]包含下一个100个元素等。
$offset = 0;
$limit = 100;
$json_array = array();
while($offset < 500)
{
array_push($json_array,getElements($token,"api/Elements?offset=".$offset."&limit=".$limit));
$offset+=100;
}
echo count($json_array)
我希望找到一种循环浏览整个JSON文件的方法,而不知道该文件的元素数量。我的最终期望是找到一种显示所有这些元素数量的方法。谢谢!
i与类似的API一起使用 - 有一个per_page
选项和page
选项。
幸运的是,如果结果少于per_page
值,我要击中的API就可以返回所有内容,而没有错误,因此我要做的就是在我获取100个记录时简单地循环。
类似:
$fetched=100;
$page=0;
$per_page=100;
$total_result=array();
while($fetched==100){
$res=json_decode(file_get_contents($API_URL."?offset=".($page*$per_page));
$fetched=count($res);
// add res to big result set
for($i=0;$i<$fetched;$i++){
$total_result[]=$res[$i];
}
$page++;
}