Форум по программированию Delphi Sources

 



Вернуться   Форум по программированию Delphi Sources > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.10.2018, 00:09
Tech N9ne Tech N9ne вне форума
Прохожий
 
Регистрация: 18.05.2018
Сообщения: 25
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Научите пасить JSON

получаю с апи вк ответ в формате json
надо вытащить некоторые значения в переменные.

сейчас установлен superobject
нашёл пример на этом же форуме, но в переменную ничего не записывается.

Код:
uses ..., superobject
....
var
Answer: ISuperObject
...
  Answer:= TSuperObject.ParseStream(myHT.Document,False);
     msg:=Answer.AsObject.S['title'];

строчку
Код:
Answer:= TSuperObject.ParseStream(myHT.Document,False);
заменил на
Код:
Answer:= TSuperObject.ParseFile(ExtractFilePath(ParamStr(0))+'text.ini',False);
в text.ini лежит json полученный с вк.


Код:
msg:=Answer.AsObject.S['title']
showmessage('msg');
в msg пусто.


паРсить* ))) в названии темы ошибочка)
Ответить с цитированием
  #2  
Старый 08.10.2018, 05:14
Tech N9ne Tech N9ne вне форума
Прохожий
 
Регистрация: 18.05.2018
Сообщения: 25
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

http://www.delphisources.ru/forum/sh...43&postcount=5
посмотрел еще 1 вариант, попробовал
Код:
 

var JSON:ISuperObject;  STR: string;
begin
 JSON := SO(sMemo1.Text); // в мемо ответ от вк в формате json
  STR:=JSON.S['peer_id'];
  ShowMessage(STR);
end;

результат тот же, окошко showmessage появляется пустым) тобиш в переменной STR пусто

ps delphi7, win7
Ответить с цитированием
  #3  
Старый 09.10.2018, 02:12
Tech N9ne Tech N9ne вне форума
Прохожий
 
Регистрация: 18.05.2018
Сообщения: 25
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Ух и долго же вы отвечаете)))
решил проблему. опишу, может кому пригодится из начинающих))

delphi 7 + SuperObject

короче нашёл такой сайт, который показывает дерево json.
и уже по нему можно понять, какой именно путь будет
http://jsonviewer.stack.hu
если это объект {} - то в delphi это .O['']
если массив [] - .A['']
перейти к нулевой ячейке массива - .O[0]
текст - .S['']

на сайте, что я привёл выше, копируете туда свой ответ json.
и делаете.


PHP код:
{"response":{"count":4,"items":[{"conversation":{"peer":{"id":46780021,"type":"user","local_id":46780021},"in_read":143911,"out_read":143912,"last_message_id":143912,"unread_count":1,"can_write":{"allowed":true}},"last_message":{"date":1538843837,"from_id":46780021,"id":143912,"out":0,"peer_id":46780021,"text":"ы","conversation_message_id":13879,"fwd_messages":[],"important":false,"random_id":0,"attachments":[],"is_hidden":false}},
{
"conversation":{"peer":{"id":438520578,"type":"user","local_id":438520578},"in_read":143894,"out_read":143458,"last_message_id":143894,"can_write":{"allowed":true}},"last_message":{"date":1538621816,"from_id":80472368,"id":143894,"out":1,"peer_id":438520578,"text":"ццццццццц","conversation_message_id":7,"fwd_messages":[],"important":false,"random_id":22733163,"attachments":[],"is_hidden":false}},{"conversation":{"peer":{"id":3483989,"type":"user","local_id":3483989},"in_read":143892,"out_read":143892,"last_message_id":143892,"can_write":{"allowed":true}},"last_message":{"date":1538596257,"from_id":3483989,"id":143892,"out":0,"peer_id":3483989,"text":"все одеваюсь и выхожу","conversation_message_id":7935,"fwd_messages":[],"important":false,"random_id":0,"attachments":[],"is_hidden":false}},{"conversation":{"peer":{"id":80472368,"type":"user","local_id":80472368},"in_read":142884,"out_read":142884,"last_message_id":142884,"can_write":{"allowed":true}},"last_message":{"date":1530311338,"from_id":80472368,"id":142884,"out":1,"peer_id":80472368,"text":"$00DCDBDA","conversation_message_id":21,"fwd_messages":[],"important":false,"random_id":22732673,"attachments":[],"is_hidden":false}}],"unread_count":1}} 
допустим я хочу получить айди из response-items-conversation-peer-id :
Код:
 var SJson:string;
{......}
{в переменной SJson находится Json}
ShowMessage(SO(SJson).o['response'].A['items'].O[0].O['conversation'].O['peer'].S['id']);

описал подробно как мог, для таких же downов как я ))))

Последний раз редактировалось Tech N9ne, 09.10.2018 в 02:18.
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:58.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2018

ВКонтакте   Facebook   Twitter