我有一个政府API的JSON输出,我需要使用PHP显示它。问题是我无法使用多于一次的foreach,或者它不起作用。我无法将所有标准加载到第一个foreach中,因为第一个数据ACASS返回3个结果,其后的所有字段将显示3次。每个字段可能会返回1-10个结果,因此需要有一个可以解释变量的系统。PHP JSON解析问题
我在想,解决的办法是将我需要显示的所有JSON项目放到第一个foreach中,但将它们设置为仅在显示它们时才显示。这或使用我目前的编码系统,但不知何故帐户的变数。
任何潜在的解决方案,非常感谢。
这是JSON输出... https://api.data.gov/sam/v4/registrations/9606040070000?api_key=WI7nHENlp6QDMnWsb0Nnmzsv1slPDTjNM0XBoKvY
下面是我使用的PHP ...
echo "ACASS ID:".$decoded_results['sam_data']['registration']['qualifications']['acass']['id']."</br>";
foreach($decoded_results['sam_data']['registration']['qualifications']['acass']['answers'] as $acass)
{
echo 'Answer Text:'.$acass['answerText'].'</br>';
echo 'ACASS Section:'.$acass['section'].'</br>';
}
$formerfirm = $decoded_results['sam_data']['registration']['qualifications']['acass']['answers'][2]['FormerFirm'];
echo 'Former Firm ID:'.$formerfirm['id'].'</br>';
echo 'Former Firm Year Established:'.$formerfirm['yearEstablished'].'</br>';
echo 'Former Firm Name:'.$formerfirm['name'].'</br>';
echo 'Former Firm DUNS'.$formerfirm['duns'].'</br>';
我尽我所能去明智的保持这种短期和简单的问题/代码。总之,问题在于,如果您查看JSON,数据层次会在ACASS/Answers下面显示大量信息,然后显示下一个类别。我不知道会有多少回应,我不知道如何解释这些变数。
我想感谢这些董事会中的每个人,他们引导我成为新成员,并帮助我发布更清晰,更简洁的问题。同样感谢所有花时间帮助我学习如何成为更好的程序员的人。
你确定你想要在这里的所有数据,包括API中的API密钥吗? – Pevara
您是否记得在将结果作为数组使用之前传递第二个参数?例如:'$ decry_results = json_decode($ jsonString,true);' – CarlosCarucce
这些数据是公开可用的,API密钥是我为这个purpore准备的,谢谢。我感谢你为我寻找。还有卡洛斯我不确定我是否跟着你,我以为我是通过写前者来做到这一点的[2]。我跳过了第二个参数,只是我没有考虑到这个事实,可能有超过一个或两个甚至10个返回的结果。 –