Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.08.2017, 08:44   #1
ffirstal4
 
Регистрация: 12.08.2014
Сообщений: 5
По умолчанию Парсинг JSON и вывод token

Доброго времени суток. Ребят подскажите как правильно спарсить данный json. Не могу вытащить token. Буду признателен за любую подсказку.

Сам JSON
{"success":true,"userName":"******* ","username":"*******","userId":"e0 1b8939-4a2d-488e-9ce2-e9d904dff767","seller":303692,"home Country":"CA","email":"6821652@mail .ru","token":"iWCoSnhuw+AuzG2MDGuNx Bvebd7p+3EDDZQP7J5Z9/hjbO2w0AtIit0Lg2gMSbdtkHw0zyqai+z/OXRGgduIA1EZubNhv/38y6T1DavhFAq6EHGM8POTew3nVgxEAcHwA iLpYEahqeyzDmbRngQPisZL6rEZ1jdvRfhP GUVYVU+ZoRnS+LAuLIUFr3s21OyZOiy6+57 ryHh43PSxt01fxh4Yt9XOl8GyPjsTerE9l0 sVSo3rhymALZTW+wZG+/YKlsc1YbwW1kEkcYYVnw4KPlYSYDGptnCJK ejUe3mCIG49sBwFz+c0k6gWyzwyP2rmdVh0 BCWVI2CDCdsmrIXVG25oU+vf9wgy6+Eh9FZ C9ReIPsSjPnYC7IRza7U6WnRWknMqu8IvfX wQvCfHbSHeKzuWGtxsvgjH4oxuHuX03E6wj LUw7TujYYSiFJKn83OrtEkSoetNznW+23NB cA1alCBgna9MVvBokNGf3ULSGlDl04wTTW4 HwXlPWVQibayyuaYrWuBUDGG3e7OHTblAih jJIGHcISEDFk829IeJt5e7Y+ZLUVubhb0eD puxImcGOqNq8kBzf/XFTBw1HNS8JH8+1LOoPDQEed5zVoKKFVDTX ZiAMXew5Fl1FhRAkdFjSGEoyqQ9wE+Q8acP 1xvzhj/7dwnWVa7+WS2+e+nyLTU=","sessionHand le":"eb341804-3290-4e59-b1ea-c41720dfba8f","tokenTtl":"0","provi so":128,"gravatar":"**************" ,"redirect":false,"redirectHost":nu ll}




Пытаюсь спарсить таким образом:

var
A: ISuperArray;
ItemS: ISuperObject;
i: Integer;
token_response: string;
begin
Form1.mmo2.Clear;
i := 0;
A := TSuperArray.Create(token); // В token находится сам JSON
ItemS := A.O[i];
token_response := ItemS.S['token'];
Form1.mmo2.Lines.Add(token_response );


PS заранее спасибо
ffirstal4 вне форума Ответить с цитированием
Старый 22.08.2017, 09:40   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Может таки имеет смысл примером воспользоваться: http://www.webdelphi.ru/2012/04/pars...cos/#more-6796
или этим:
http://www.programmersforum.ru/showthread.php?t=293855
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 22.08.2017, 11:41   #3
ffirstal4
 
Регистрация: 12.08.2014
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Sciv Посмотреть сообщение
Может таки имеет смысл примером воспользоваться: http://www.webdelphi.ru/2012/04/pars...cos/#more-6796
или этим:
http://www.programmersforum.ru/showthread.php?t=293855
Делаю так:

var
JSONObject, GContact: ISuperObject;
JsonArray: ISuperArray;
i: integer;
token_response: string;
begin
JSONObject := TSuperObject.Create;
JSONObject := SO(token);
token_response := JSONObject.O[''].S['token']; ///S['token'];
mmo2.Lines.Clear;
mmo2.Lines.Add(token_response);

Ругается на S


B Не понимаю что надо ставить в JSONObject.O[''] если там простой массив.



[dcc32 Error] Main.pas(98): E2251 Ambiguous overloaded call to 'SO'
[dcc32 Error] Main.pas(98): E2010 Incompatible types: 'XSuperObject.ISuperObject' and 'superobject.ISuperObject'
ffirstal4 вне форума Ответить с цитированием
Старый 22.08.2017, 11:44   #4
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
Сообщение от ffirstal4 Посмотреть сообщение
B Не понимаю что надо ставить в JSONObject.O[''] если там простой массив.
Код:
.O[0].
Ни о чём не говорит?
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 22.08.2017, 11:48   #5
ffirstal4
 
Регистрация: 12.08.2014
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Sciv Посмотреть сообщение
.O[0].
Это да я понял. Но чего тогда ошибка на JSONObject := SO(token);?
Прошу прощения за не знание данного момента.
ffirstal4 вне форума Ответить с цитированием
Старый 22.08.2017, 12:08   #6
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
Сообщение от ffirstal4 Посмотреть сообщение
Но чего тогда ошибка на JSONObject := SO(token);?
Судя по ошибкам, она тащит SO не из того класса ('XSuperObject.ISuperObject' and 'superobject.ISuperObject').

Видимо, в обоих этих классах есть перегруженная SO.

Очень похоже, что это ошибка не в Вашем коде, а в исходниках ISuperObject.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 22.08.2017, 12:16   #7
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Посмотрел исходник SO на гитхабе (https://github.com/onryldz/x-superob...erObject.pas):

Код:
function SO(JSON: String): ISuperObject;
begin
  if JSON = '' then JSON := '{}';
  Result := TSuperObject.Create(JSON);
end;
Получается, что экземпляр интерфейса создаётся внутри функции. Следовательно, нужно убрать

Код:
JSONObject := TSuperObject.Create;
из кода. А то получается, что пытаемся в уже существующий объект засунуть ещё один объект
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Парсинг string в БД. json. c# zink Общие вопросы .NET 1 05.06.2016 10:02
Парсинг JSON. (X-SuperObject) Delphi XE8 mailkyda Общие вопросы Web 1 23.05.2016 07:13
Парсинг JSON и занос его к stringgrid ffirstal4 Общие вопросы Delphi 3 17.03.2015 10:36
Вывод JSON списка в Joomla 3.1.1 kutt Фриланс 4 13.02.2015 06:35
Парсинг массива в json C_R_E_S_C_H Общие вопросы Delphi 0 12.05.2012 23:39