2016-04-01 5 views
0

zu entschlüsseln habe ich diese Daten JSON und möchte es mit PHP dekodieren dann in MySQL-Datenbank einfügen:Wie json in php

{ 
    "data": [ 
    { 
     "location_id": "5786213", 
     "name": "Nirvana Lagoon Villas Suites & Spa", 
     "distance": "0.0300528659549801", 
     "bearing": "east", 
     "address_obj": { 
     "street1": "Goynuk Mahallesi, Baskomutan Ataturk Caddesi No: 141", 
     "street2": null, 
     "city": "Beldibi", 
     "state": "Antalya Province", 
     "country": "Turkey", 
     "postalcode": null, 
     "address_string": "Goynuk Mahallesi, Baskomutan Ataturk Caddesi No: 141, Beldibi, Kemer Turkey" 
     } 
    } 
    ] 
} 

ich mit dem folgenden PHP-Code zu entschlüsseln bin versucht, aber ich nicht bekommen, jedes Ergebnis:

$url = "http://myurl" 
$jsondata = file_get_contents($url); 
$datatrip = json_decode($jsondata, true); 

    $advisor_id = $datatrip['data']['location_id']; 
    $advisor_name = $datatrip['data']['name']; 
    $distance = $datatrip['data']['distance']; 
    $bearing = $datatrip['data']['bearing']; 
    $street1 = $datatrip['data']['address_obj']['street1']; 
    $street2 = $datatrip['data']['address_obj']['street2']; 
    $city = $datatrip['data']['address_obj']['city']; 
    $state = $datatrip['data']['address_obj']['state']; 
    $country = $datatrip['data']['address_obj']['country']; 
    $postalcode = $datatrip['data']['address_obj']['postalcode']; 
    $address_string = $datatrip['data']['address_obj']['address_string']; 

print_r() des json_decode() Ergebnis:

Array ([data] => Array ([0] => Array ([location_id] => 5786213 [name] => Nirvana Lagoon Villas Suites & Spa [distance] => 0.0300528659549801 [bearing] => east [address_obj] => Array ([street1] => Goynuk Mahallesi, Baskomutan Ataturk Caddesi No: 141 [street2] => [city] => Beldibi [state] => Antalya Province [country] => Turkey [postalcode] => [address_string] => Goynuk Mahallesi, Baskomutan Ataturk Caddesi No: 141, Beldibi, Kemer Turkey)))) 

Ist mein erfüllt hod falsch, um Daten zu entschlüsseln?

+0

Was ist die Ausgabe von print_r ($ datatrip)? $ url endet nicht in der json-Erweiterung. –

+0

Array ([Daten] => Array ([0] => Array ([location_id] => 5786213 [Name] => Nirvana Lagoon Villas Suites & Spa [Entfernung] => 0.0300528659549801 [Bearing] => east [address_obj] = > Array ([street1] => Göynük Mahallesi, Baskomutan Atatürk Caddesi No: 141 [street2] => [Stadt] => Beldibi [Staat] => Provinz Antalya [Land] => Türkei [Postleitzahl] => [address_string] = > Goynuk Mahallesi, Baskomutan Atatürk Caddesi No: 141, Beldibi, Kemer Türkei)))) – kazata

Antwort

2

Sie Dekodieren es in Ordnung, aber in Ihrem JSON der Schlüssel 'data' ist eigentlich ein Array von Objekten (man beachte die [ {...} ]).

Also diese zugreifen würden Sie den Array-Schlüssel wie angeben müssen:

$datatrip['data'][0]['address_obj']['postalcode']; 

Beachten Sie die [0] drin.

+0

Vielen Dank für die Antwort, ich habe nicht bemerkt, dass es einen quadratischen Bracet gab. nachdem ich [0] in die Mitte eingefügt habe, funktioniert es jetzt. – kazata