[Решено] JSON + "\n"

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

[Решено] JSON + "\n"

Сообщение GAMER » 10.07.2019 11:14:48

Столкнулся с проблемой следующего типа.
Есть строка json c параметрами:
{"event":"message","message":{"text":"123\n567","type":"text"},"silent":false}
при парсинге
Код: Выделить всё
 
     R:=J.FindPath('message.text');
      if R=nil then
      begin
       J.Free;
       exit;
      end;
      Text:=R.AsString;

Я уже получаю значение в переменной Text как "123#10567"
можно ли как-то получить оригинальное значение из двумя символами "\n"?
Если нет, то буду писать свою обработку.
Последний раз редактировалось GAMER 11.07.2019 10:44:00, всего редактировалось 1 раз.
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: JSON + "\n"

Сообщение olegy123 » 10.07.2019 13:36:38

А кто пакует json строку? и чем смотрите..
char(#10) это есть '\n'
так что все верно.. и никто не заменяет символ перевода строки #10 тремя '#10'
olegy123
долгожитель
 
Сообщения: 1643
Зарегистрирован: 25.02.2016 12:10:20

Re: JSON + "\n"

Сообщение GAMER » 10.07.2019 13:53:19

Строку получаю по вебу. В дебагере смотрю - вижу в строке \n.
После того, как витянул значение и просвоил его другой переменной в дебагере в этой переменной уже вижу #10.

Проблема в том, что json нормально отправит строку '123\n456', но не отправит строку '123#10456'
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: JSON + "\n"

Сообщение fedan » 10.07.2019 14:27:06

а что получится, если строку '123#10456' обратно в json перегнать?
fedan
новенький
 
Сообщения: 70
Зарегистрирован: 15.09.2016 21:18:48

Re: JSON + "\n"

Сообщение GAMER » 10.07.2019 14:30:41

так и уходит, с нулем. А потом другая сторона не может распарсить, так как там конец строки, а не символ.
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: JSON + "\n"

Сообщение fedan » 10.07.2019 14:34:53

fedan
новенький
 
Сообщения: 70
Зарегистрирован: 15.09.2016 21:18:48

Re: JSON + "\n"

Сообщение GAMER » 10.07.2019 14:37:57

Та да, пока так и сделал (только старым способом, без этой функции)

Добавлено спустя 38 минут 44 секунды:
fedan писал(а):ну, тогда https://www.freepascal.org/docs-html/rt ... place.html

Cтранно, но с этими символами не сработало. Еще перепроверю саму функцию.
Не, все сработало.
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: JSON + "\n"

Сообщение Дож » 10.07.2019 23:32:41

#10 обязан эскейпиться в строках при построении JSON'а.

В fcl-json я вижу функцию StringToJSONString, которая похоже на то, что вам нужно.
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

Re: JSON + "\n"

Сообщение GAMER » 11.07.2019 10:43:35

Да, эту функцию я искал. Спасибо.
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 33

Рейтинг@Mail.ru