как валидировать json на php

M9
На сайте с 15.05.2014
Offline
79
384

есть неправильный json который идет с парсера, как валидировать json с помощью php

T7
На сайте с 19.09.2018
Offline
34
#1
mega94:
есть неправильный json который идет с парсера, как валидировать json с помощью php

json-last-error

Там ошибка простая - ключ data для php в кавычках должен быть

{ "data": ..... }

#вместо
{ data: ..... }
M9
На сайте с 15.05.2014
Offline
79
#2

Да, я решил вырезать эту часть, но проблема сейчас в другом, не могу вырезать этот текст:

Поздравляем! Вы выиграли
{coinCount} монет. Сегодня вы сможете получить ещё {number} монет.

то есть после

Поздравляем! Вы выиграли
идет перенос, пишу регулярное выражения:
preg_replace('/Поздравляем! Вы выиграли\n{coinCount} монет. Сегодня вы сможете получить ещё {number} монет./', '', $string)

но не вырезается вот: https://repl.it/@Naimjonyunusov/SalmonHotTrapezoids

J
На сайте с 20.02.2014
Offline
94
jkm
#3

Там не \n, а последовательность \r\n.

Ну и зачем тут preg_replace, если достаточно strtr или str_replace.

$string = strtr($string, ["\r" => "\\r", "\n" => "\\n"]);
T7
На сайте с 19.09.2018
Offline
34
#4

В данном случае достаточно str_replace

echo str_replace("Поздравляем! Вы выиграли\n{coinCount} монет. Сегодня вы сможете получить ещё {number} монет.", '', $str);
S
На сайте с 30.09.2016
Offline
459
#5
mega94:
но не вырезается вот

Потому что обратный слэш - спецсимвол, в регулярке надо экранировать: \\\n

И точка - спецсимвол, надо экранировать: \.

Но это на будущее, в данном случае это ни к чему, как написали выше.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий