2016-05-19 1 views
0

J'essaie d'accéder à une liste de contacts via JSON. J'ai du mal à comprendre la JSON Hiérarchie et accéder aux objets:Accès/lecture de la hiérarchie JSON

$token="25948503485mytokenhere003403403"; 
$url = "https://crm.zoho.com/crm/private/json/Accounts/getRecords?"; 
$url .= "authtoken=".$token."&scope=crmapi"; 
$json = file_get_contents($url); 
$contacts = json_decode($json); 

$cleanObj = $contacts->response->result->Accounts->row; 

function getCompany($obj, $part) { 
    $innerObj = $obj->FL; 
    foreach ($innerObj as $c) { 
     if ($c['val'] == $part) { 
      return $c['content']; 
     } 
    } 
} 

$company = getCompany($cleanObj[0], "Company"); 

echo "<pre>"; 
print_r($cleanObj); 
echo "</pre>"; 

Voici la réponse première à vous montrer la hiérarchie:

Array 
(
[0] => stdClass Object 
    (
     [no] => 1 
     [FL] => Array 
      (
       [0] => stdClass Object 
        (
         [content] => 1900238000000115001 
         [val] => ACCOUNTID 
        ) 

       [1] => stdClass Object 
        (
         [content] => 1900238000000097003 
         [val] => SMOWNERID 
        ) 

       [2] => stdClass Object 
        (
         [content] => chase 
         [val] => Account Owner 
        ) 

       [3] => stdClass Object 
        (
         [content] => Test Company 
         [val] => Account Name 
        ) 

       [4] => stdClass Object 
        (
         [content] => www.google.com 
         [val] => Website 
        ) 

       [5] => stdClass Object 
        (
         [content] => 0 
         [val] => Account Number 
        ) 

       [6] => stdClass Object 
        (
         [content] => 0 
         [val] => Employees 
        ) 

       [7] => stdClass Object 
        (
         [content] => 0 
         [val] => Annual Revenue 
        ) 

       [8] => stdClass Object 
        (
         [content] => 0 
         [val] => SIC Code 
        ) 

       [9] => stdClass Object 
        (
         [content] => 1900238000000097003 
         [val] => SMCREATORID 
        ) 

       [10] => stdClass Object 
        (
         [content] => chase 
         [val] => Created By 
        ) 

       [11] => stdClass Object 
        (
         [content] => 1900238000000097003 
         [val] => MODIFIEDBY 
        ) 

       [12] => stdClass Object 
        (
         [content] => chase 
         [val] => Modified By 
        ) 

       [13] => stdClass Object 
        (
         [content] => 2016-05-18 13:50:57 
         [val] => Created Time 
        ) 

       [14] => stdClass Object 
        (
         [content] => 2016-05-18 13:50:57 
         [val] => Modified Time 
        ) 

       [15] => stdClass Object 
        (
         [content] => 0 
         [val] => Billing State 
        ) 

       [16] => stdClass Object 
        (
         [content] => 2016-05-18 13:50:57 
         [val] => Last Activity Time 
        ) 

      ) 

    ) 

Je suis en train d'accéder aux champs comme « ACCOUNTID » " SMOWNERID "" Propriétaire du compte "" Nom du compte "etc sur ce niveau.

Ce code retourne l'erreur « Erreur fatale: Impossible d'utiliser l'objet de type stdClass comme tableau »:

$company = getCompany($cleanObj[0], "Company"); 

Quelqu'un peut-il s'il vous plaît me aider à accéder à chacun des contacts objet et être en mesure de boucle à travers et les sorties?

Répondre

0

J'ai fini par comprendre. Occasion:

$co_name = $contacts->response->result->Accounts->row->FL[3]->content 

comme le chemin de la Société

> Active en result- Leads ont dû être changé à result-> Comptes pour l'obtenir à lire correctement.