2016-05-19 10 views
0

JSON経由で連絡先リストにアクセスしようとしています。私は困難JSON階層を理解することを有し、かつ、オブジェクトにアクセスしています:ここで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>"; 

はあなたの階層を表示するには、生の応答です:

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 
        ) 

      ) 

    ) 

私は「ACCOUNTID」などのフィールドにアクセスしようとしています」 SMOWNERID "" Account Owner "" Account Name "などを入力します。

このコードは、エラー「致命的なエラー:配列としてのタイプはstdClassのオブジェクトを使用することはできません」:戻っている

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

誰かが私には、各連絡先はそれらを介して、出力オブジェクトとループのことができるようにアクセス助けてくださいことはできますか?

答えて

0

私はそれを理解し終わった。使用:会社

へのパス

が判明

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

としてresult->リードは、それを正しく読むために取得する>アカウントをresult-ように変更する必要がありました。

関連する問題