/ / Перетворити необмежену рядок, що містить "масив" в масив PHP або JSON - php, масиви, json, розбір

Перетворення необробленого рядка, що містить "Array", до PHP Array або JSON - php, arrays, json, parsing

У мене є рядок, який схожий 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. Я переключився приблизно на половину, і це було нормально перевірити через цю точку.

Побачити специфікація для деталей, але це по суті лише купа масивів. Там вимога до подвійних цитат для рядків чітко прописана, а решта виглядає нормально.