Вернуться   Форум об интернет-маркетинге > >
Ответ
 
Опции темы
Старый 28.07.2019, 12:12   #1
Кандидат наук
 
Регистрация: 15.05.2014
Сообщений: 251
Репутация: -691

По умолчанию как валидировать json на php

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

Реклама
Старый 28.07.2019, 14:46   #2
timo-71
Дипломник
 
Регистрация: 19.09.2018
Сообщений: 72
Репутация: 34297

По умолчанию Re: как валидировать json на php

Цитата:
Сообщение от mega94 Посмотреть сообщение
есть неправильный json который идет с парсера, как валидировать json с помощью php
json-last-error
Там ошибка простая - ключ data для php в кавычках должен быть
Код:
{ "data": ..... }
#вместо
{ data: ..... }
timo-71 вне форума   Ответить с цитированием
Старый 28.07.2019, 16:25   #3
mega94
Кандидат наук
 
Регистрация: 15.05.2014
Сообщений: 251
Репутация: -691

ТопикСтартер Re: как валидировать json на php

Да, я решил вырезать эту часть, но проблема сейчас в другом, не могу вырезать этот текст:
Цитата:
Поздравляем! Вы выиграли
{coinCount} монет. Сегодня вы сможете получить ещё {number} монет.
то есть после
Цитата:
Поздравляем! Вы выиграли
идет перенос, пишу регулярное выражения:
Цитата:
preg_replace('/Поздравляем! Вы выиграли\n{coinCount} монет. Сегодня вы сможете получить ещё {number} монет./', '', $string)
но не вырезается вот: https://repl.it/@Naimjonyunusov/SalmonHotTrapezoids
mega94 вне форума   Ответить с цитированием
Старый 28.07.2019, 18:15   #4
jkm
Профессор
 
Регистрация: 21.02.2014
Сообщений: 639
Репутация: 199539

По умолчанию Re: как валидировать json на php

Там не \n, а последовательность \r\n.
Ну и зачем тут preg_replace, если достаточно strtr или str_replace.
Код:
$string = strtr($string, ["\r" => "\\r", "\n" => "\\n"]);
jkm вне форума   Ответить с цитированием
Сказали спасибо:
Старый 28.07.2019, 18:19   #5
timo-71
Дипломник
 
Регистрация: 19.09.2018
Сообщений: 72
Репутация: 34297

По умолчанию Re: как валидировать json на php

В данном случае достаточно str_replace
Код:
echo str_replace("Поздравляем! Вы выиграли\n{coinCount} монет. Сегодня вы сможете получить ещё {number} монет.", '', $str);
timo-71 вне форума   Ответить с цитированием
Старый 28.07.2019, 19:23   #6
Sitealert
Слесарь-сайтосборщик
 
Регистрация: 30.09.2016
Адрес: Замкадье
Сообщений: 5,102
Репутация: 348366

По умолчанию Re: как валидировать json на php

Цитата:
Сообщение от mega94 Посмотреть сообщение
но не вырезается вот
Потому что обратный слэш - спецсимвол, в регулярке надо экранировать: \\\n
И точка - спецсимвол, надо экранировать: \.
Но это на будущее, в данном случае это ни к чему, как написали выше.
__________________
Отпилю лишнее, прикручу нужное, выправлю кривое.
Вытравлю вредителей.
Sitealert вне форума   Ответить с цитированием
Старый 06.08.2019, 16:58   #7
N1kO
Banned
 
Регистрация: 05.01.2008
Сообщений: 43
Репутация: -2133

По умолчанию Re: как валидировать json на php

используйте функция json_decode, если она вернула false - значит json не валидный
N1kO вне форума   Ответить с цитированием
Ответ

Метки
json , php



Опции темы

Быстрый переход


Регистрация Справка Календарь Поддержка Все разделы прочитаны