首页 > 解决方案 > 从 API 获取信息的问题

问题描述

我实际上是在使用 API 从组织中获取一些结果。但有些事情我实际上无法处理,jere 是我的代码:

$responseTournoi = json_decode($resp);
$natures = $responseTournoi->hits;

这为我提供了我想要的信息,但是在这些信息中,我们有一个名为“naturesEpreuves”的案例,并且无法获得它,当我对其进行 var_dump 时,它告诉我这是一个数组,所以我尝试了很多方法来获得它,但不确定如何正确执行,这是我尝试过的错误:

$natures->naturesEpreuves[0]
Trying to get property 'naturesEpreuves' of non-object
$natures['naturesEpreuves'][0]
Undefined index: naturesEpreuves

在我的 API 中,我得到了这些信息:

naturesEpreuves 
0   
code    DM
libelle Double Messieurs
sexe    H
valide  True

所以这里是 API 调用:

$url_tournoi = "https://api-dev.fft.fr/fft-qlf/v3/competition/tournois";
$curl_tournoi = curl_init();
$dataJSON = json_encode(array(
    "typePratique" => array("PADEL"),
    "from" => 0,
    "size" => 1,
    "dateDebut" => "2020-09-01T00:00:00.000",
    "dateFin" => "2021-12-31T00:00:00.000",
    "type" => array("P"),
));
curl_setopt_array($curl_tournoi, array(
    CURLOPT_URL => $url_tournoi,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_SSL_VERIFYPEER => FALSE,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => $dataJSON,
    CURLOPT_HTTPHEADER => array(
        "content-type: application/json",
        "Authorization: Bearer $token",
    ),
));
$resp = curl_exec($curl_tournoi);
$responseTournoi = json_decode($resp);
$natures = $responseTournoi->hits;

这里是 var_dump:

array (size=1)
  0 => 
    object(stdClass)[4]
      public 'inscriptionEnLigneEnCours' => boolean false
      public 'avecResultatPublie' => boolean false
      public 'code' => string '202157750513004' (length=15)
      public 'nombreDeCourtExterieur' => int 2
      public 'niveauHierarchique' => string 'C' (length=1)
      public 'millesime' => int 2021
      public 'libelle' => string 'TEST 10/06' (length=10)
      public 'codeComite' => string '5775' (length=4)
      public 'installations' => 
        array (size=0)
          empty
      public 'type' => string 'P' (length=1)
      public 'reductionEpreuveSupplementaireJeune' => int 0
      public 'naturesTerrains' => 
        array (size=0)
          empty
      public 'adresse1Engagement' => string 'Centre National d'Entrainement' (length=30)
      public 'reductionEpreuveSupplementaireAdulte' => int 0
      public 'nomComite' => string 'PARIS' (length=5)
      public 'naturesEpreuves' => 
        array (size=1)
          0 => 
            object(stdClass)[5]
              ...

因此,如果您有任何解决方案,我将很乐意讨论!非常感谢 !

标签: phpapiphp-7

解决方案


你应该像这样得到这个字段:

$natures->naturesEpreuves;

它是对象内部的属性。

如果它不起作用,请检查是什么$natures

var_dump($natures)

编辑 :

根据你的 var_dump 输出,假设这是$natures你应该尝试做的输出:

var_dump($natures[0]->naturesEpreuves);

因为,如您所见,对象位于数组内部:

array (size=1)
  0 => 
    object(stdClass)[4]
...

推荐阅读