Запрос на получение данных PHP JSONPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Запрос на получение данных PHP JSON

Сообщение Anonymous »

Интересно, может ли кто-нибудь подсказать, где я ошибаюсь.
При использовании PHP следующий код успешно используется для получения массива JSON из внешнего источника:

Код: Выделить всё

$jsonData   = file_get_contents($link);
... после чего полученные данные также были успешно перестроены и преобразованы в массив PHP с использованием следующего кода:

Код: Выделить всё

array_push($AllTable1, array(

"bookingid"  => $bookingid2,
"dayname"    => $dayname6,
"daydate"    => $daydate4,
"monthname"  => $monthname,
"starttime"  => $starttime4,
"title"      => $title7,
"room"       => $room7,
"roomcol"    => $roomcol,
"roomcol2"   => $roomcol2

));
При запуске следующего кода:

Код: Выделить всё

$AllTable1 = str_replace(PHP_EOL, '', $AllTable1);
echo json_encode($AllTable1, JSON_PRETTY_PRINT);
... данные в следующем формате успешно возвращаются без каких-либо ошибок:

Код: Выделить всё

0
bookingid   "window.open('https://
')"
dayname "Mon"
daydate "04"
monthname   "December"
starttime   "10:30"
title   "Yoga Classes"
room    "Large Hall"
roomcol "#b30c35"
roomcol2    ""
1
bookingid   "window.open('https://')"
dayname "Mon"
daydate "04"
monthname   "December"
starttime   "19:00"
title   "History Group"
room    "Small Hall"
roomcol "#428bca"
roomcol2    ""
2
bookingid   "window.open('https://')"
dayname "Tue"
daydate "05"
monthname   "December"
starttime   "10:00"
title   "All Welcome Coffee Morning"
room    "Kitchen,Small Hall"
roomcol "#41753f"
roomcol2    "#428bca"
3
bookingid   "window.open('https://')"
dayname "Tue"
daydate "05"
monthname   "December"
starttime   "20:30"
title   "Table Tennis Club"
room    "Large Hall"
roomcol "#b30c35"
roomcol2    ""
4
... etc,etc
Однако при запуске следующего кода:

Код: Выделить всё

print_r($AllTable1);
... вместе с данными массива возвращается следующая ошибка:
SyntaxError: JSON.parse: неожиданный символ в строке 1, столбце 1 данные JSON

Код: Выделить всё

Array
(
[0] => Array
(
[bookingid] => window.open('https://
')
[dayname] => Mon
[daydate] => 04
[monthname] => December
[starttime] => 10:30
[title] => Yoga Classes
[room] => Large Hall
[roomcol] => #b30c35
[roomcol2] =>
)

[1] => Array
(
[bookingid] => window.open('https://')
[dayname] => Mon
[daydate] => 04
[monthname] => December
[starttime] => 19:00
[title] => History Group
[room] => Small Hall
[roomcol] => #428bca
[roomcol2] =>
)

[2] => Array
(
[bookingid] => window.open('https://')
[dayname] => Tue
[daydate] => 05
[monthname] => December
[starttime] => 10:00
[title] => All Welcome Coffee Morning
[room] => Kitchen,Small Hall
[roomcol] => #41753f
[roomcol2] => #428bca
)

[3] => Array
(
[bookingid] => window.open('https://')
[dayname] => Tue
[daydate] => 05
[monthname] => December
[starttime] => 20:30
[title] => Table Tennis Club
[room] => Large Hall
[roomcol] => #b30c35
[roomcol2] =>
)

[4] => Array
...  etc,etc
Кроме того, при запуске следующего кода для попытки вывода данных из массива, например:

Код: Выделить всё

$ddata = json_encode($AllTable1, true);
echo("The day of the sixth booking in the list is: \n");
echo $ddata[5]['dayname'];
... возвращается следующая ошибка и выходные данные (кстати, в массиве более шести наборов данных):

Код: Выделить всё

SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

The day of the sixth booking in the list is:
Фактически ошибка остается и данные не возвращаются.
Возможно ли, что данные отформатированы неправильно? Если да, то я не могу понять, почему данные массива возвращаются правильно в обоих приведенных выше примерах массивов, несмотря на ошибку JSON.
Я был бы очень признателен, если бы кто-нибудь мог помочь. и подскажем, что делается не так и что нужно сделать для решения вопроса.

Подробнее здесь: https://stackoverflow.com/questions/775 ... eval-query
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»