2012-12-10 4 views
1

Мой код:PHP: var_dump выплевывая неверный формат от json_decode

$json_data = file_get_contents($json_url,0,null,null); 
$json_output = json_decode($json_data); 
var_dump($json_output); 

Это то, что var_dump выкладывает в одной большой линии, не форматируется на всех:

object(stdClass)#1 (1) { ["timetableresult"]=> object(stdClass)#2 (1) { ["ttitem"]=> array(17) { [0]=> object(stdClass)#3 (1) { ["segment"]=> array(8) { [0]=> object(stdClass)#4 (3) { ["segmentid"]=> object(stdClass)#5 (2) { ["mot"]=> object(stdClass)#6 (3) { ["@displaytype"]=> string(1) "G" ["@type"]=> string(1) "G" ["#text"]=> string(5) "GÃ¥ng" } ["distance"]=> int(1008) } ["departure"]=> object(stdClass)#7 (2)... etc.etc. 

Что я делаю неправильно ?

+0

У вас установлен xdebug? Он добавит много дополнительной информации, а также сформирует ваш var_debug. Попробуйте использовать print_r вместо var_dump) – Luke

+0

Посмотрите в источнике или выполните: 'echo"

".var_dump(json_output)."
";' –

+0

print_r получает результат: "stdClass Object ([timetableresult] => stdClass Object ([ttitem] => Array ([0 ] => stdClass Object ([segment] => Array ([0] => stdClass Object ([segmentid] => stdClass Object ([mot] => stdClass Object ([@displaytype] => G [@type] => G [#text] ... и т. Д., Но все же в одной большой строке. –

ответ

6

var_dump печатает новые строки. Браузеры не отображают новые строки.

Попробуйте echo "<pre>"; var_dump($json_output); echo "</pre>";

+0

И есть ответ :) Спасибо! –

+1

Пожалуйста, примите затем. :) http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – yoshi

1

Вы делаете уаг дамп, чтобы получить доступ к свойствам вы могли бы сделать что-то вроде этого: $ seg_id = $ json_output-> timetableresult-> ttitem-> отрезок [0] -> segmentid ; Я действительно не смотрел внимательно на структуру вашего json, но это примерно то, что вам нужно.

Или ... Если вы сделаете это Еогеаспа ($ json_output-> timetableresult-> ttitem в $ п) { var_dump ($ пункта); }

Вы начнете видеть, как получить доступ ко всем частям, которые вы хотите.

+0

Вы верны! Однако у меня 9000 линий, чтобы пройти (головная боль!)! Во всяком случае, я получил правильный ответ! :) –

+0

Вижу, я не понимал, что проблема заключается в чисто форматировании дисплея, я должен был бы уделять больше внимания! –

Смежные вопросы