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

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

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

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

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

Вопрос: Как вывести полученный результат в Label (вместо текущего StringList)
И как отобразить в них русский шрифт (с латиницей все в порядке)
Миниатюры
Парсинг JSON и вывод в Label  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
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
5868 / 4596 / 1448
Регистрация: 14.04.2014
Сообщений: 20,393
Записей в блоге: 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
33003 / 21306 / 8183
Регистрация: 22.10.2011
Сообщений: 36,610
Записей в блоге: 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
33003 / 21306 / 8183
Регистрация: 22.10.2011
Сообщений: 36,610
Записей в блоге: 8
11.08.2015, 00:40 12
То есть, ты думаешь, если я перепишу все твои \u... в строку и подставлю в код по ссылке, то я не получу "Вася Пупкин"? А может, лучше попробовать, чем нести чушь? Где у меня в коде есть слово "Скайрим"? Я его вообще-то получаю из зашифрованного текста, а не наоборот.

Если бы ты привел зашифрованную строку в виде текста, а не в виде картинки, я бы попробовал и показал тебе скриншот, подтверждающий, что ты не прав. А так - нет желания набивать коды вручную, да еще не все. Тем более, такие как ты никогда не признаются в том, что были неправы - всегда находится отмазка, что "там был другой код", например... Поэтому скажу просто:
Цитата Сообщение от poreeff Посмотреть сообщение
Это "решение" для того - кто знает что там написано...
- бред. Это решение - для того, у кого есть зашифрованный текст и его надо расшифровать. Бери и расшифровывай.
1
11.08.2015, 00:40
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.08.2015, 00:40
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов. . . .
С чего начать программировать микроконтроллер­­ы
raxper 06.01.2025
Введение в мир микроконтроллеров Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
Обновление сайта www.historian.b­y
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
Модель полного двоичного сумматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list): s=^y] p=x and y for i in range(1,len(x)): s. append((x^y)^p) p=(x and y)or(p and (x or y)) return s x=list() y=list()
Это мы не проходили, это нам не задавали...(аси­­­­­­­­­­­­­­­­­­­­­­­­­­х­р­о­н­­н­­­ы­­й счётчик с управляющим сигналом зад
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru