У мене є рядок, який схожий Array
що отримано з інших подібних веб-служб
[
[
[189, "Brazil Serie A", 0, ""],
[
[1053230, "Flamengo", "Atletico Goianiense", "1.196", 10, "07/02/2012 04:30", 0, 9, 1, 0, "", 0]
],
[0, [
[10770901, 0, 5000.00],
[1, 17988654, "-0.78", "0.70", "1.0", 1],
[3, 17965783, "0.97", "0.93", "2.5-3"],
[7, 17965787, "-0.89", "0.77", "0.50", 1],
[9, 17965789, "0.70", "-0.82", "1.0"]
]]
],
[, , [0, [
[10748028, 0, 3000.00],
[1, 17965781, "0.85", "-0.93", "0.5-1", 1],
[3, 17988655, "0.79", "-0.89", "2.50"]
]]]
]
Чи можливий розбір на PHP Array
або перетворити в JSON
?
Відповіді:
1 для відповіді № 1Як зазначав ctrahey, одиничні лапки потрібно замінити на подвійні лапки, щоб вони були дійсними JSON. Коми без нічого, що передує їм, також повинні пройти.
// quote to double quote
$input = str_replace(""", """, $input);
// remove empty commas
$input = preg_replace("/,s*,/", ",", $input);
$input = preg_replace("/[s*,/", "[", $input);
$output = json_decode($input));
Я намагався зробити це просто і створити трохи гнучкості.
1 для відповіді № 2
Гм, на перший погляд ... якщо ви конвертуєте свої єдині лапки в подвійні лапки, у вас вже є JSON. Я переключився приблизно на половину, і це було нормально перевірити через цю точку.
Побачити специфікація для деталей, але це по суті лише купа масивів. Там вимога до подвійних цитат для рядків чітко прописана, а решта виглядає нормально.