2013-08-13 2 views
0
$pf = new Petfinder('API_KEY'); 
$pf->setResponseFormat('json'); 
$petJson = $pf->pet_find(array('output'=>'basic', 'location' => '32810', 'count' => '25')); 
$pet = json_decode($petJson); 
foreach ($pet as $pets) 
{ 
    print_r($pets); 
} 

시도했지만 var_dump($pets->pets->pet); 시도했지만 작동하지 않았다. 난 그냥 같은 품종으로 하나 개의 요소를 추출하기 위해 노력하고있어데이터 구문 분석 및 PHP에서 요소 추출하기

/* 응답은 */

iso-8859-11.0stdClass Object 
(
    [lastOffset] => stdClass Object 
    (
     [$t] => 1 
    ) 
    [pets] => stdClass Object 
    (
     [pet] => stdClass Object 
     (
      [options] => stdClass Object 
      (
       [option] => stdClass Object 
       (
        [$t] => housebroken 
       ) 
      ) 
      [breeds] => stdClass Object 
      (
       [breed] => stdClass Object 
       (
        [$t] => Domestic Short Hair 
       ) 
      ) 
      [shelterPetId] => stdClass Object() 
      [status] => stdClass Object 
      (
       [$t] => A 
      ) 
      [name] => stdClass Object 
      (
       [$t] => Bottle Fed Kittens 
      ) 
      [contact] => stdClass Object 
      (
       [email] => stdClass Object 
       (
        [$t] => [email protected] 
       )  
       [zip] => stdClass Object 
       (
        [$t] => 32810 
       )  
       [city] => stdClass Object 
       (
        [$t] => Orlando 
       ) 
       [fax] => stdClass Object() 
       [name] => stdClass Object 
       (
        [$t] => Lori Lewis 
       ) 
       [address1] => stdClass Object 
       (
        [$t] => P.O.Box 607082 
       ) 
       [phone] => stdClass Object 
       (
        [$t] => 407-953-0297 
       ) 
      ) 
      [description] => stdClass Object 
      (
       [$t] => 
      ) 
      [sex] => stdClass Object 
      (
       [$t] => F 
      ) 
      [media] => stdClass Object 
      (
       [photos] => stdClass Object 
       (
        [photo] => Array 
        (
         [0] => stdClass Object 
         (
          [@size] => x 
          [$t] => http://photos.petfinder.com/photos/US/FL/FL1155/26769037/FL1155.26769037-1-x.jpg 
          [@id] => 1 
         ) 
         [2] => stdClass Object 
         (
          [@size] => t 
          [$t] => http://photos.petfinder.com/photos/US/FL/FL1155/26769037/FL1155.26769037-3-t.jpg 
          [@id] => 3 
         ) 
        ) 
       ) 
      ) 
      [id] => stdClass Object 
      (
       [$t] => 26769037 
      ) 
      [animal] => stdClass Object 
      (
       [$t] => Cat 
      ) 
     ) 
    ) 
    [header] => stdClass Object 
    (
     [timestamp] => stdClass Object 
     (
      [$t] => 2013-08-13T05:54:46Z 
     ) 
     [status] => stdClass Object 
     (
      [message] => stdClass Object() 
      [code] => stdClass Object 
      (
       [$t] => 100 
      ) 
     ) 
     [version] => stdClass Object 
     (
      [$t] => 0.1 
     ) 
    ) 
    [@xsi: noNamespaceSchemaLocation] = > http: //api.petfinder.com/schemas/0.9/petfinder.xsd 
) 

, 어떤 도움을 크게 감상 할 수있다.

+0

var_dump($pet->petfinder->pets->pet->breeds->breed) 

응답 당신은'이소 - 8859-11.0' 응답이 있습니다. 이것을 제거하려고 시도하십시오 – Ibu

+0

이것은'JSON'이 아닌'OBJECT' 응답입니다 –

+0

오브젝트에서 iso-8859-11.0을 제거하는 방법에 대한 제안 사항이 있습니까? – user2677350

답변

0

나는 품종을 구문 분석 할 수 있었다 방법이다.

array(2) { [0]=> object(stdClass)#25 (1) { ["$t"]=> string(19) "Domestic Short Hair" }   [1]=> object(stdClass)#26 (1) { ["$t"]=> string(36) "Domestic Short Hair -Gray And White" } } 
0

이 개체를 배열로 변환하고 배열 함수를 사용할 수 있습니다. 변환하려면이 코드를 사용하십시오.

if (is_object($pets)) { 
    $pets_arr = get_object_vars($pets); 
    var_dump($pets_arr); 
} 
+0

위의 코드 스 니펫을 추가하면 iso-8859-11.0이 제거됩니다. 도와 주셔서 감사합니다! – user2677350

1

번식을 받으려면 다음을 수행해야합니다.

$pf = new Petfinder('API_KEY'); 
$pf->setResponseFormat('json'); 
$petJson = $pf->pet_find(array('output'=>'basic', 'location' => '32810', 'count' => '25')); 
$pet = json_decode($petJson); 

VAR 덤프

여기
var_dump($pet->pets->pet->breeds->breed); 
+0

어떤 이유로이 솔루션은 작동하지 않습니다. 비록 내가 품종을 추출하는 올바른 코드라는 것을 알고 있습니다. – user2677350

+0

print_R ($ pet)을하면 어떻게됩니까? –

+0

print_R ($ pet)를 사용하면 위와 같은 전체 객체를 얻을 수 있지만 var_dump ($ pet-> pets-> pet-> breeds-> breed)를 시도하면됩니다. 내가 알 수없는 속성 : stdClass :: $ pets. – user2677350