Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
3 / 3 / 3
Регистрация: 28.06.2015
Сообщений: 211
1

Парсинг JSON и вывод в Label

06.08.2015, 06:05. Показов 1916. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Принцип >

1) Кнопка "Отправить": Отправленный POST запрос вывожу в Memo
2) Кнопка "Сохранить": Сохраняю Memo в файл
3) Кнопка "Вывести": Вывожу полученный JSON в StringList (использую RegExpr)

Вопрос: Как вывести полученный результат в Label (вместо текущего StringList)
И как отобразить в них русский шрифт (с латиницей все в порядке)
Миниатюры
Парсинг JSON и вывод в Label  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.08.2015, 06:05
Ответы с готовыми решениями:

Парсинг JSON в JSON Linked Data с использованием Hydra Java
Есть веб страница, на которой пользователь заполняет поля, жмет на кнопку и затем данные...

Парсинг JSON с short.pub посредством NewtonSoft.Json
Доброго времени суток. Имеется сокращалка сайтов short.pub, у которой есть API, который...

Парсинг JSON-строки и вывод данных из строки
Добрый день! Я разрабатываю Android-клиент, который мог бы обмениваться данными с размещенной...

[Newtonsoft.Json] Парсинг JSON-ответа
Здравствуйте уважаемые участники сообщества "CyberForum" ! У меня возникла небольшая проблема. Я...

11
3 / 3 / 3
Регистрация: 28.06.2015
Сообщений: 211
06.08.2015, 06:14  [ТС] 2
Кликните здесь для просмотра всего текста
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
procedure TForm1.Button1Click(Sender: TObject);
var
  PostData: TStringList;
  html: TStringStream;
begin
try
    PostData := TStringList.Create;
    html := TStringStream.Create('');
    idHTTP1.HandleRedirects:=true;
    PostData.Add('key='+Edit1.Text); // добавим ключ к запросу
    PostData.Add('identifier='+Edit2.Text); // добавим идентификатор пользователя (е-майл)
    IdHTTP1.Post('http://www.мой_сайт.ru/бла-бла-бла/lic/?info&',PostData,html);
    Memo1.Text := Utf8ToAnsi(html.DataString);
   finally
  end;
      html.Free;
end;
procedure TForm1.Button2Click(Sender: TObject);
 Begin
  Memo1.Lines.SaveToFile('otvet.json');
 
end;
 
procedure TForm1.Button3Click(Sender: TObject);
var
  r: TRegExpr;
begin
  StringGrid1.Cols[0].Add('key');
  StringGrid1.Cols[1].Add('identifier');
  StringGrid1.Cols[2].Add('customer_name');
  StringGrid1.Cols[3].Add('ip');
 
  r := TRegExpr.Create;
  r.Expression := '"key":"(.*?)"'; // key
    if r.Exec(Memo1.text) then
    repeat
      StringGrid1.Cols[0].Add(r.Match[1]);
    until not r.ExecNext;
 
   r.Expression := '"identifier":"(.*?)"'; // identifier
    if r.Exec(Memo1.text) then
    repeat
      StringGrid1.Cols[1].Add(r.Match[1]);
    until not r.ExecNext;
 
      r.Expression := '"customer_name":"(.*?)"'; // customer_name
    if r.Exec(Memo1.text) then
    repeat
      StringGrid1.Cols[2].Add(r.Match[1]);
    until not r.ExecNext;
 
      r.Expression := '"ip":"(.*?)"'; // ip
    if r.Exec(Memo1.text) then
    repeat
      StringGrid1.Cols[3].Add(r.Match[1]);
    until not r.ExecNext;
 
   r.Free;
end;
 
end.
0
20 / 20 / 7
Регистрация: 08.07.2015
Сообщений: 176
06.08.2015, 10:58 3
Delphi
1
label.caption := label.caption + r.match[1] +#13
не?
0
3 / 3 / 3
Регистрация: 28.06.2015
Сообщений: 211
06.08.2015, 17:52  [ТС] 4
Цитата Сообщение от Sfairath Посмотреть сообщение
не?
.не
0
3 / 3 / 3
Регистрация: 28.06.2015
Сообщений: 211
06.08.2015, 19:54  [ТС] 5
Проблему решил. Вот так вернее...
Код
Label6.Caption := StringGrid1.Cells[2,1];
Однако, появилась другая.
Вместо ожидаемого "Вася Пупкин" наблюдаю:

Парсинг JSON и вывод в Label


Если имя пользователя указано (не кириллицей) латиницей - все в порядке.
Как это исправить, как вывести русский текст в Label???
0
20 / 20 / 7
Регистрация: 08.07.2015
Сообщений: 176
07.08.2015, 08:00 6
poreeff
Если имя пользователя указано (не кириллицей) латиницей - все в порядке.
Как это исправить, как вывести русский текст в Label???
Пошаманить с кодировкой. Я где-то уже советовал похожее. Сделай свой тип строки типа
Delphi
1
MyString = type AnsiString(1251);
И замени на MyString свои строковые типы данных.
0
3 / 3 / 3
Регистрация: 28.06.2015
Сообщений: 211
07.08.2015, 23:36  [ТС] 7
Цитата Сообщение от Sfairath Посмотреть сообщение
...Сделай свой тип строки типа...
Объявил:
Код
procedure TForm1.Button1Click(Sender: TObject);
type
  MyString = type AnsiString(1251);
var
Вывожу:
Код
Memo1.Text := MyString(html.DataString);
Без разницы. Как были "кракозябры" так и остались...
0
5858 / 4587 / 1447
Регистрация: 14.04.2014
Сообщений: 20,339
Записей в блоге: 20
09.08.2015, 06:52 8
в стандартном JSON не-ANSI символы кодируются через \u
я для себя написал простую функцию, которая заменяет \uxxxx на chr(strtoint(xxxx))
5 строк
0
3 / 3 / 3
Регистрация: 28.06.2015
Сообщений: 211
09.08.2015, 23:14  [ТС] 9
Цитата Сообщение от krapotkin Посмотреть сообщение
я для себя написал простую функцию
поделитесь решением плиз...
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32950 / 21270 / 8166
Регистрация: 22.10.2011
Сообщений: 36,538
Записей в блоге: 8
09.08.2015, 23:45 10
Цитата Сообщение от poreeff Посмотреть сообщение
поделитесь решением
Здесь есть решение: \u0421\u043a\u0430\u0439\u0440\u0438\u043c - что это? , как для 2010+, так и для Дельфи 7
0
3 / 3 / 3
Регистрация: 28.06.2015
Сообщений: 211
10.08.2015, 23:57  [ТС] 11
Цитата Сообщение от volvo Посмотреть сообщение
Здесь есть решение...
Это "решение" для того - кто знает что там написано... Откуда мне знать заранее, что покупателя зовут Вася Пупкин??? )))))
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32950 / 21270 / 8166
Регистрация: 22.10.2011
Сообщений: 36,538
Записей в блоге: 8
11.08.2015, 00:40 12
То есть, ты думаешь, если я перепишу все твои \u... в строку и подставлю в код по ссылке, то я не получу "Вася Пупкин"? А может, лучше попробовать, чем нести чушь? Где у меня в коде есть слово "Скайрим"? Я его вообще-то получаю из зашифрованного текста, а не наоборот.

Если бы ты привел зашифрованную строку в виде текста, а не в виде картинки, я бы попробовал и показал тебе скриншот, подтверждающий, что ты не прав. А так - нет желания набивать коды вручную, да еще не все. Тем более, такие как ты никогда не признаются в том, что были неправы - всегда находится отмазка, что "там был другой код", например... Поэтому скажу просто:
Цитата Сообщение от poreeff Посмотреть сообщение
Это "решение" для того - кто знает что там написано...
- бред. Это решение - для того, у кого есть зашифрованный текст и его надо расшифровать. Бери и расшифровывай.
1
11.08.2015, 00:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.08.2015, 00:40
Помогаю со студенческими работами здесь

Парсинг json , переменные из json
Всем доброго времени суток, в общем столкнулся с проблемой в силу отсутствия достаточного колл-ва...

Парсинг JSON
Подскажите, почему не получается разобрать массив, до этого разбирался. { "status" :...

парсинг json
имею следующий джисон :{ "EGRN": { "object": { "CADNOMER":...

Парсинг json
Здравствуйте! Имеется такой json код: { "data": }И я его обрабатываю так: JSONArray urls =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru