2013-05-07 70 views
0

我正在嘗試循環並從此響應中獲取詳細信息。無論結果如何,「交易」部分顯然都會重複。我用這個解碼json響應yippits api PHP json解碼

$jsonurl = "http://api.yipit.com/v1/deals/?key=&tag=spa"; 
$json = file_get_contents($jsonurl,0,null,null); 
$json_output = json_decode($json); 

但不完全確定如何通過此循環與foreach?任何幫助入門將非常感激!

"meta": { 
    "code": 200, 
    "next": "http://api.yipit.com/v1/deals/?tag=spa&limit=20&key=&offset=20", 
    "previous": null 
}, 
"response": { 
    "deals": [ 
     { 
      "active": 1, 
      "business": { 
       "id": 253658, 
       "locations": [ 
        { 
         "address": "9634 N May Ave", 
         "id": 923137, 
         "lat": 35.5695651, 
         "locality": "Oklahoma City", 
         "lon": -97.5671643, 
         "phone": "405-748-4070", 
         "smart_locality": "Oklahoma City", 
         "state": "OK", 
         "zip_code": "73120" 
        } 
       ], 
       "name": "Vibrant Life Center", 
       "url": "http://vibrantlifeokc.com/" 
      }, 
      "date_added": "2013-05-07 10:43:10", 
      "description": "Let the friendly, experienced technicians at this center help you rejuvenate your body with state-of-the-art LipoLaser treatments: \u2022 $77 ($250 value) for one LipoLaser treatment \u2022 $147 ($500 value) for two LipoLaser treatments \u2022 $249 ($1,000 value) for four LipoLaser treatments Why We Love It At this convenient location in The Village, experts use the Stella LipoLaser for this noninvasive procedure for clients 18 and older. You could feel more confident after just one quick 30-minute treatment, so call to schedule an appointment at this office, which is open Tuesday through Saturday. Vibrant Life Center's Website | Facebook", 
      "discount": { 
       "formatted": "69%", 
       "raw": 69 
      }, 
      "division": { 
       "active": 1, 
       "country": "United States", 
       "lat": 35.4673709, 
       "lon": -97.516583, 
       "name": "Oklahoma City", 
       "slug": "oklahoma-city", 
       "time_zone_diff": -6, 
       "url": "http://yipit.com/oklahoma-city/" 
      }, 
      "end_date": "2013-05-14 09:59:59", 
      "id": 19852358, 
      "images": { 
       "image_big": "http://a.yipitcdn.com/thumbor/zf6rjiAKcs8k9F5RE_rHARXxTfE=/fit-in/372x372/a.yipitcdn.com/deal/feel-fitter-faster-with-lipolaser-treatments-1367922391.jpg", 
       "image_small": "http://a.yipitcdn.com/thumbor/b4dO4-uTRFySlYgBVQAxrLYwk4Q=/fit-in/212x212/a.yipitcdn.com/deal/feel-fitter-faster-with-lipolaser-treatments-1367922391.jpg", 
       "image_smart": "http://a.yipitcdn.com/thumbor/9p60gjXqwYoPEH637m5IA9_s8c4=/408x357/smart/a.yipitcdn.com/deal/feel-fitter-faster-with-lipolaser-treatments-1367922391.jpg" 
      }, 
      "mobile_url": "http://m.yipit.com/business/vibrant-life-center/?bp_ad=1", 
      "price": { 
       "formatted": "$77", 
       "raw": 77.00 
      }, 
      "source": { 
       "name": "LivingSocial", 
       "paid": 0, 
       "slug": "living-social", 
       "url": "" 
      }, 
      "tags": [ 
       { 
        "name": "Spa", 
        "slug": "spa", 
        "url": "" 
       } 
      ], 
      "title": "Feel Fitter Faster with LipoLaser Treatments", 
      "url": "http://yipit.com/aff/eval/deal/?deal=NHFZJTjT&key=fnY4CzVj", 
      "value": { 
       "formatted": "$250", 
       "raw": 250.00 
      }, 
      "yipit_title": "One, Two, or Four LipoLaser Treatments", 
      "yipit_url": "http://yipit.com/business/vibrant-life-center/" 
     }, 

回答

2

$json_output->response->deals - 您收到的所有交易的數組。所以,你需要遍歷它來獲取它的信息。

例如這個代碼將回顯所有交易descritions:

foreach($json_output->response->deals as $deal) 
{ 
    echo $deal->description.'<br />'; 
} 

[] - 指陣列。它可以使用循環迭代。 {} - 手段對象(StdClass實例)。其屬性可通過->訪問。

例如處理大的圖像可以retrived就像這樣(在以前的foreach環的情況下):

echo $deal->images->image_big;

+0

這完美地工作,只是一張紙條給任何人想要做你的答案說了同樣的事情$ json_output->效應初探這應該是應對的。 (錯字)一旦我看到它的工作錯字。謝謝!! – 2013-05-07 15:40:52

+0

糟糕!錯字是固定的:) – 2013-05-07 15:51:30

0

json_decode()實際上應該對象歸還給您。爲了訪問這些屬性,您可以使用echo $json_output->meta->code來獲取200或$json_output->deals[0]->business->id以獲取第一筆交易的業務ID。請注意0​​和[]之間的差異

我總是建議使用var_dump($json_output),這樣您就可以在解碼後清楚地看到對象的結構。