JSON декодировать строку в PHP (массив массивов) Специальные символы

Так что у меня есть эта проблема при преобразовании строки JSON в массив PHP. Данные отправляются через HTTP POST, поэтому я знаю, что может потребоваться некоторое декодирование.

Может кто-нибудь пролить свет на то, как я буду использовать json_decode () в PHP для преобразования этой строки в массив?
"[[\"37\",\"text\",\"\\\"\\\"\"],[\"38\",\"text\",\"\\\"\\\"\"],[\"39\",\"text\",\"\\\"one word two words. Hello? \\\\\\\"escape\\\\\\\" lol\\\"\"]]"

Вход был:

[
["37", "text", ""],
["38", "text", ""],
["39", "text", userInputtedString]
]

куда userInputtedString является:
one word two words. Hello? "escape" lol

^ Или любые другие значения Unicode

0

Решение

Используйте utf8_encode перед json_decode

$str = "[[\"37\",\"text\",\"\\\"\\\"\"],[\"38\",\"text\",\"\\\"\\\"\"],[\"39\",\"text\",\"\\\"one word two words. Hello? \\\\\\\"escape\\\\\\\" lol\\\"\"]]";
$str = utf8_encode($str);
$str = json_decode($str,JSON_UNESCAPED_SLASHES);
1

Другие решения

В чем проблема?

Просто используйте json_decode, как вы упомянули.

$ans = json_decode($_POST["name-of-var"]);

Это должно сделать это.

1

Вы также можете использовать uft8_encode (для отправки в HTML) и uft8_decode (для получения), но не правильным способом

1
По вопросам рекламы [email protected]