|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Обработка Post запроса
Доброго времени суток!
Все цифры динамичны в коде. Т.е место 15 в следующий раз будет 40 и т.д. Имеется еще одна проблема: Код:
{"adventures":{"list":[{"delay":"20","description":"\u0411\u0430\u043d\u0449\u0438\u043a-\u0442\u043e \u0441\u043e\u0432\u0441\u0435\u043c \u043e\u0441\u0440\u0430\u043c\u0435\u043b, \u043d\u0430\u0448\u0438\u0445 \u0431\u0430\u0431 \u0432 \u0431\u0430\u043d\u0435 \u043f\u0443\u0433\u0430\u0435\u0442, \u0430\u043d\u0443-\u043a\u0430 \u0437\u0430\u0434\u0430\u0439 \u0435\u043c\u0443 \u0436\u0430\u0440\u0443!","reward_money":36,"background":"1","name":"\u0417\u0430\u0434\u0430\u0442\u044c \u0436\u0430\u0440\u0443","reward_exp":2,"npc":"1","req_energy":"10","min_lvl":"1","id":"5","reward_exp_base":2,"reward_money_base":18,"clan_exp_boost":0,"clan_money_boost":0,"game_exp_boost":0,"game_money_boost":18}, {"delay":"20","description":"\u041b\u044e\u0434 \u0447\u0435\u0441\u0442\u043d\u043e\u0439 \u0432\u0441\u0435 \u0447\u0430\u0449\u0435 \u0436\u0430\u043b\u0443\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0437\u043b\u044b\u0434\u0435\u043d\u044c \u0438\u0445 \u0438\u0437\u0432\u043e\u0434\u0438\u0442. \u0415\u0433\u043e-\u0442\u043e \u0438 \u043d\u0430\u0434\u043e \u043f\u0440\u043e\u0443\u0447\u0438\u0442\u044c. \u041d\u043e \u0441\u043f\u0440\u0430\u0432\u0438\u0448\u044c\u0441\u044f \u043b\u0438?","reward_money":4,"background":"1","name":"\u041f\u0440\u043e\u0443\u0447\u0438\u0442\u044c \u0437\u043b\u044b\u0434\u043d\u044f!", "reward_exp":18,"npc":"2","req_energy":"10","min_lvl":"1","id":"8","reward_exp_base":18,"reward_money_base":2,"clan_exp_boost":0,"clan_money_boost":0,"game_exp_boost":0,"game_money_boost":2},{"delay":"20","description":"\u0417\u0430\u043b\u044e\u0442\u043e\u0432\u0430\u043b\u0430 \u0432 \u0434\u0435\u0440\u0435\u0432\u043d\u0435 \u0442\u044e\u0445\u0430 - \u0442\u043e\u043f\u0430\u0435\u0442 \u0434\u0430 \u0441\u0442\u0443\u0447\u0438\u0442 \u043f\u043e \u043d\u043e\u0447\u0430\u043c, \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u0441\u043b\u0430\u0434\u0443 \u0441 \u043d\u0435\u0439 \u043d\u0435\u0442. \u041a\u043e\u043b\u044c \u0441\u043c\u043e\u0436\u0435\u0448\u044c \u0435\u0435 \u043e\u0434\u043e\u043b\u0435\u0442\u044c - \u043d\u0430\u0433\u0440\u0430\u0436\u0443!","reward_money":30,"background":"1","name":"\u0422\u044e\u0445\u0430 \u0437\u0430\u043b\u044e\u0442\u043e\u0432\u0430\u043b\u0430", "reward_exp":5,"npc":"3","req_energy":"10","min_lvl":"3","id":"14","reward_exp_base":5,"reward_money_base":15,"clan_exp_boost":0,"clan_money_boost":0,"game_exp_boost":0,"game_money_boost":15}],"bonus":{"type":"2","enabled":"1","silver_multiplier":"1","experience_nultiplier":"0","experience_multiplier":"0"}}} Суть такова. У "reward_exp" есть 3 значения. (2, 18 и 5) Нужно каждое вывести в разные edit. Код:
var tmp,tmp1,tmp2: string; s,a,d:string; begin s:=edit4.text; tmp:= Copy(s, Pos('"reward_exp":', s)+13, Length(s)); edit4.text:= Copy(tmp, 0, Pos(',"', tmp)-1); a:=edit5.text; tmp1:= Copy(a, Pos('"reward_exp":', a)+13, Length(a)); edit5.text:= Copy(tmp1, 0, Pos(',"', tmp1)-1); d:=edit6.text; tmp2:= Copy(d, Pos('"reward_exp":', d)+13, Length(d)); edit6.text:= Copy(tmp2, 0, Pos(',"', tmp2)-1); Данный код здесь не работает, т.к в разных полях выводится одинаковое число. Прошу помощи! Последний раз редактировалось lmikle, 08.06.2014 в 20:53. |
#2
|
|||
|
|||
Тебе возвращается, судя по виду, JSON.
Возьми любую библиотеку работы с JSON и получай данные через нее по именам. |
#3
|
|||
|
|||
Цитата:
расскажи поподробней про библиотеки JSON или кинь почитать что нибудь. Спасибо. |
#4
|
|||
|
|||
Разобраться не смог.
|
#5
|
||||
|
||||
Цитата:
Код:
uses superobject; ..... procedure TForm1.Button1Click(Sender: TObject); const cJSON: String = '{"adventures":{"list":[{"delay":"20","description":"\u0411\u0430\u043d\u0449\u0438\u043a-\u0442\u043e \u0441'+ '\u043e\u0432\u0441\u0435\u043c \u043e\u0441\u0440\u0430\u043c\u0435\u043b, \u043d\u0430\u0448\u0438\u0445 \u'+ '0431\u0430\u0431 \u0432 \u0431\u0430\u043d\u0435 \u043f\u0443\u0433\u0430\u0435\u0442, \u0430\u043d\u0443-\u'+ '043a\u0430 \u0437\u0430\u0434\u0430\u0439 \u0435\u043c\u0443 \u0436\u0430\u0440\u0443!","reward_money":36,"b'+ 'ackground":"1","name":"\u0417\u0430\u0434\u0430\u0442\u044c \u0436\u0430\u0440\u0443","reward_exp":2,"npc":"'+ '1","req_energy":"10","min_lvl":"1","id":"5","reward_exp_base":2,"reward_money_base":18,"clan_exp_boost":0,"c'+ 'lan_money_boost":0,"game_exp_boost":0,"game_money_boost":18},{"delay":"20","description":"\u041b\u044e\u0434'+ ' \u0447\u0435\u0441\u0442\u043d\u043e\u0439 \u0432\u0441\u0435 \u0447\u0430\u0449\u0435 \u0436\u0430\u043b\u'+ '0443\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0437\u043b\u044b\u0434\u0435\u043d\u044c \u0438\u0445 \u0'+ '438\u0437\u0432\u043e\u0434\u0438\u0442. \u0415\u0433\u043e-\u0442\u043e \u0438 \u043d\u0430\u0434\u043e \u0'+ '43f\u0440\u043e\u0443\u0447\u0438\u0442\u044c. \u041d\u043e \u0441\u043f\u0440\u0430\u0432\u0438\u0448\u044c'+ '\u0441\u044f \u043b\u0438?","reward_money":4,"background":"1","name":"\u041f\u0440\u043e\u0443\u0447\u0438\u'+ '0442\u044c \u0437\u043b\u044b\u0434\u043d\u044f!","reward_exp":18,"npc":"2","req_energy":"10","min_lvl":"1",'+ '"id":"8","reward_exp_base":18,"reward_money_base":2,"clan_exp_boost":0,"clan_money_boost":0,"game_exp_boost"'+ ':0,"game_money_boost":2},{"delay":"20","description":"\u0417\u0430\u043b\u044e\u0442\u043e\u0432\u0430\u043b'+ '\u0430 \u0432 \u0434\u0435\u0440\u0435\u0432\u043d\u0435 \u0442\u044e\u0445\u0430 - \u0442\u043e\u043f\u0430'+ '\u0435\u0442 \u0434\u0430 \u0441\u0442\u0443\u0447\u0438\u0442 \u043f\u043e \u043d\u043e\u0447\u0430\u043c, '+ '\u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u0441\u043b\u0430\u0434\u0443 \u0441 \u043d\u0435\u0439 \u'+ '043d\u0435\u0442. \u041a\u043e\u043b\u044c \u0441\u043c\u043e\u0436\u0435\u0448\u044c \u0435\u0435 \u043e\u0'+ '434\u043e\u043b\u0435\u0442\u044c - \u043d\u0430\u0433\u0440\u0430\u0436\u0443!","reward_money":30,"backgrou'+ 'nd":"1","name":"\u0422\u044e\u0445\u0430 \u0437\u0430\u043b\u044e\u0442\u043e\u0432\u0430\u043b\u0430","rewa'+ 'rd_exp":5,"npc":"3","req_energy":"10","min_lvl":"3","id":"14","reward_exp_base":5,"reward_money_base":15,"cl'+ 'an_exp_boost":0,"clan_money_boost":0,"game_exp_boost":0,"game_money_boost":15}],"bonus":{"type":"2","enabled'+ '":"1","silver_multiplier":"1","experience_nultiplier":"0","experience_multiplier":"0"}}}'; var obj1: ISuperObject; begin obj1 := SO(cJSON); Edit4.Text := obj1.S['adventures.list[0].reward_exp']; Edit5.Text := obj1.S['adventures.list[1].reward_exp']; Edit6.Text := obj1.S['adventures.list[2].reward_exp']; end; P.S. Только в модуле "superobject.pas" в строке 5638 нужно убрать директиву {$Q+}, иначе в старых версиях Delphi (в частности в Delphi 7) будет вылетать ошибка "Integer overflow". |
#6
|
|||
|
|||
огромное спасибо, какие модули подключать надо?
|
#7
|
|||
|
|||
Огромнейшее спасибо, разобрался!
|