2016-04-01 6 views
0

У меня есть эти данные в формате JSON и хотите декодировать с помощью PHP затем вставить в базу данных MySQL:Как декодировать JSON в 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" 
     } 
    } 
    ] 
} 

Я пытаюсь расшифровать с помощью следующего кода PHP, но я не получаю любой результат:

$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() из json_decode() результата:

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)))) 

ли мой встретил Неправильно ли декодировать данные?

+0

Какой выход print_r ($ datatrip)? $ url не заканчивается расширением json. –

+0

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] => [город] => Бельдиби [штат] => Антальская провинция [страна] => Турция [почтовый индекс] => [адрес_шт.] = > Goynuk Mahallesi, Baskomutan Ataturk Caddesi No: 141, Beldibi, Kemer Turkey)))) – kazata

ответ

2

Вы декодирование это хорошо, но в вашем JSON ключ «данные» на самом деле массив объектов (обратите внимание [ {...} ]).

Таким образом, доступ этого вам нужно будет указать ключ массива, такие как:

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

Обратите внимание на [0] там.

+0

Благодарим за отзыв, я не заметил, что была квадратная скобка. после того, как я добавлю [0] к середине, теперь его работа. – kazata