0

APIを使用しようとしています。を返しますjson。以下は出力です:

{
    "meta": {
        "code": 200,
        "next": "http://api.yipit.com/v1/deals/?limit=1&key=AKVP839qHEM7TgXV&offset=1",
        "previous": null
    },
    "response": {
        "deals": [
            {
                "active": 1,
                "business": {
                    "id": 11009,
                    "locations": [
                        {
                            "address": "120 Millenium Dr",
                            "id": 974228,
                            "lat": 44.5400434,
                            "locality": "Chester",
                            "lon": -64.2325975,
                            "phone": null,
                            "smart_locality": "Chester",
                            "state": "NS",
                            "zip_code": "B0J 1J0"
                        },
                        {
                            "address": "95 Wentworth St",
                            "id": 974229,
                            "lat": 44.6685886,
                            "locality": "Dartmouth",
                            "lon": -63.5698711,
                            "phone": null,
                            "smart_locality": "Dartmouth",
                            "state": "NS",
                            "zip_code": "B2Y 2T3"
                        }
                    ],
                    "name": "Fit Body Boot Camp",
                    "url": "http://www.fitbodybootcampbeachwood.com/"
                },
                "date_added": "2013-01-05 04:14:17",
                "description": "Exercise keeps the body in peak condition, which explains the marbleized ThighMaster lying next to Michelangelo's David. Enjoy an anatomical renaissance with this Groupon. Choose Between Two Options  $29 for a 10-day Fit and Firm program (a $124 value) $47 for a four-week Rapid Fat Loss program (a $247 value)  Both options include a nutrition consultation, elective weigh-ins and body-fat measurements, and unlimited boot-camp sessions for the duration of the program. The sessions combine cardio training with resistance and weight work, helping to maximize caloric burn both during and after the workout. Click here to see the class schedule, and click here for a list of frequently asked questions.",
                "discount": {
                    "formatted": "77%",
                    "raw": 77
                },
                "division": {
                    "active": 1,
                    "country": "Canada",
                    "lat": 44.648881,
                    "lon": -63.575312,
                    "name": "Halifax, Nova Scotia",
                    "slug": "halifax-nova-scotia",
                    "time_zone_diff": -4,
                    "url": "http://yipit.com/halifax-nova-scotia/"
                },
                "end_date": "2013-01-11 03:59:59",
                "id": 14517543,
                "images": {
                    "image_big": "http://b.yipitcdn.com/cache/deal/10-day-fit-and-firm-program-or-four-week-rapid-fat-loss-program-at-fit-body-boot-camp-up-to-81-off-42-1357359256_display_image.jpg",
                    "image_small": "http://a.yipitcdn.com/cache/deal/10-day-fit-and-firm-program-or-four-week-rapid-fat-loss-program-at-fit-body-boot-camp-up-to-81-off-42-1357359256_small_image.jpg"
                },
                "mobile_url": "http://m.yipit.com/halifax-nova-scotia/groupon/10-day-fit-and-firm-program-or-four-week-rapid-fat-loss-program-at-fit-body-boot-camp-up-to-81-off-42/?bp_ad=1",
                "price": {
                    "formatted": "$29",
                    "raw": 29.00
                },
                "source": {
                    "name": "Groupon",
                    "paid": 0,
                    "slug": "groupon",
                    "url": ""
                },
                "tags": [
                    {
                        "name": "Boot Camp",
                        "slug": "boot-camp",
                        "url": ""
                    }
                ],
                "title": "10-Day Fit-and-Firm Program or Four-Week Rapid Fat-Loss Program at Fit Body Boot Camp (Up to 81% Off)",
                "url": "http://yipit.com/aff/eval/deal/?deal=RXk8HSAz&key=t5pm9EBw",
                "value": {
                    "formatted": "$124",
                    "raw": 124.00
                },
                "yipit_title": "Up to 81% Off at Fit Body Boot Camp",
                "yipit_url": "http://yipit.com/halifax-nova-scotia/groupon/10-day-fit-and-firm-program-or-four-week-rapid-fat-loss-program-at-fit-body-boot-camp-up-to-81-off-42/"
            }
        ]
    }
}

PHPでは、受け取る必要があります 。しかし、phpページにid,lat,lan,name,url,yipit_url,yipit_id,img_bg, city, zipそれらのオブジェクトを表示する方法がわかりません。json私を助けてください。

ありがとう、エナムル

4

4 に答える 4

4

http://php.net/manual/en/book.json.php

特にあなたは見たいかもしれませんjson_decode()

小さな例:

<?php

function JSONPrepare($json) {
    // This will convert ASCII/ISO-8859-1 to UTF-8.
    // Be careful with the third parameter (encoding detect list), because
    // if set wrong, some input encodings will get garbled (including UTF-8!)
    $input = mb_convert_encoding($json, 'UTF-8', 'ASCII,UTF-8,IS0-8859-1');

    // Remove UTF-8 BOM if present, json_decode() does not like it.
    if (substr($input, 0, 3) == pack("CCC", 0xEF, 0xBB, 0xBF)) {
        $input = substr($input, 0, 3);
    }

    return $input;
}

foreach (json_decode(JSONPrepare($my_json), true) as $k => $v) {
    // process the array here
}
?>
于 2013-01-05T04:48:43.567 に答える
1

*「ええ、json_decode で実行する必要があることはわかっています。しかし、その方法がわかりません。」*

わかりました、どういうわけか変数にデータを取得しているとしましょう$data

$array=json_decode($data, true);

それを配列に変換します。この場合、id内に他の配列と変数があります

全体print_r($array);を表示してソース コードを表示するには、またはecho '<pre>'; print_r($array);

したがって、必要なビットに到達するには、配列をトラバースする必要がありますが、必要なものは配列内の多くの要素の 1 つにあるlocationsため、それらを反復処理する必要があります

foreach ($array['response']['deals']['active']['locations'] as $location)
{
     echo 'id:'.$location['id'];
     echo 'lat':$location['lat'];
     //ect
}

または、最初のものを選択できます

echo $array['response']['deals']['active']['locations'][0]['id'];
于 2013-01-05T04:57:32.567 に答える
0

json_decode は、json を PHP オブジェクトに変換します。

$response = json_decode($json);$json が上で投稿した JSON である場所を使用すると、次のようになります。

echo $response->deals->business->id; // 11009
echo $response->deals->business->locations[0]->id; //974228 
echo $response->deals->ypit_url; // http://yipit.com/h...y-boot-camp-up-to-81-off-42/
于 2013-01-05T04:56:31.603 に答える
0

これらのデータは、オブジェクトよりも解析しやすい配列として取得することもできます。

$parsedData = json_decode($jsondata, 1);

print_r ($parsedData);

于 2013-01-05T05:03:16.257 に答える