2014-09-18 3 views
0

Я пытаюсь проанализировать некоторые данные из ответа API Hubspot. Ответ выглядит следующим образом json_decoded:HubSpot api json decode

stdClass Object(
[addedAt] => 1411052909604 
[vid] => 24 
[canonical-vid] => 24 
[merged-vids] => Array 
    (
    ) 

[portal-id] => XXXXX 
[is-contact] => 1 
[profile-token] => AO_T-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 
[profile-url] => https://app.hubspot.com/contacts/XXXXX/lists/public/contact/_AO_T-XXXXXXXXXXXXXXXXXXXXXXXXXXXXX 
[properties] => stdClass Object 
    (
     [lastname] => stdClass Object 
      (
       [value] => testtt 
      ) 

     [firstname] => stdClass Object 
      (
       [value] => test 
      ) 

     [lastmodifieddate] => stdClass Object 
      (
       [value] => 1411052906670 
      ) 

    ) 

[form-submissions] => Array 
    (
     [0] => stdClass Object 
      (
       [conversion-id] => 85d24dd2-9ee9-4d47-b8f3-3035acbd8f3b 
       [timestamp] => 1411052834097 
       [form-id] => fb16efd9-23cc-4511-889c-204fc8b41dba 
       [portal-id] => 401824 
       [page-url] => http://wbl-1.hs-sites.com/test 
       [canonical-url] => http://wbl-1.hs-sites.com/test 
       [content-type] => landing-page 
       [page-title] => test 
       [page-id] => 1570433242 
       [title] => Default Form (Sample) 
       [first-visit-url] => http://wbl-1.hs-sites.com/test 
       [first-visit-timestamp] => 1411052722970 
       [meta-data] => Array 
        (
        ) 

      ) 

    ) 

[list-memberships] => Array 
    (
    ) 

[identity-profiles] => Array 
    (
     [0] => stdClass Object 
      (
       [vid] => 24 
       [identities] => Array 
        (
         [0] => stdClass Object 
          (
           [type] => EMAIL 
           [value] => [email protected] 
           [timestamp] => 1411052834097 
          ) 

         [1] => stdClass Object 
          (
           [type] => LEAD_GUID 
           [value] => 0b6acf21-6cee-4c7b-b664-e65c11ee2d8e 
           [timestamp] => 1411052834201 
          ) 

        ) 

      ) 

    ) 

[merge-audits] => Array 
    (
    ) 

)

Я ищу специально, чтобы попытаться выкопать электронную почту внутри области indentities-профиля.

Я попытался сделать следующее:

echo $results->contacts[0]->identity-profiles; 

Но это только дает мне значение 0

Тогда я стараюсь идти дальше в массив, выполнив:

echo $results->contacts[0]->identity-profiles[0]; 

Но в этот момент я получаю ошибку синтаксического анализа:

Ошибка анализа: ошибка синтаксиса, неожиданная '['

Что я делаю неправильно? И как я могу выкопать весь путь вниз к идентичности профилей [0] -> идентичностей -> [0] -> значение

, который должен быть равен: [email protected]

Что я упускаю?

+1

Я бы расшифровал его как ассоциативный массив вместо объекта. Для меня это всегда помогает. –

+0

Не уверен, что вы имеете в виду. Не могли бы вы привести пример? – MrTechie

+1

json_decode ($ json, true) - значение «true» заставляет json_decode возвращать ассоциативный массив. –

ответ

1

Как упоминалось в комментарии, я предложил бы декодировать JSON в ассоциативный массив, передав true в качестве второго параметра в json_decode. Пример: json_decode($data, true) Чем вы могли бы получить доступ к профилям идентичности:

$results['contacts'][0]['identitiy-profiles']

Если вы все еще хотите, чтобы получить результаты в виде объекта, вы должны получить доступ к свойствам следующим образом потому, что они содержат -:

$results->contacts[0]->{'identity-profiles'}

+0

Ах - имеет смысл. Я могу в это время выкопать .print_r ($ results ['contacts'] [0] ['identity-profiles'] [0] ['identityities] [0] [' value ']); дает мне результаты, которые я ищу. Благодаря! – MrTechie