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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2014, 02:41   #1
Smagulov85
Форумчанин
 
Аватар для Smagulov85
 
Регистрация: 22.11.2009
Сообщений: 142
По умолчанию JSON данные

Почта России перешла на JSON я не как не могу их парсить теперь

Так получаю status

Цитата:
var
js :TlkJSONobject;
begin
js := TlkJSONobject.Create;
js := TlkJSON.ParseText(Memo1.Text) as TlkJSONobject;
Edit1.Text:= js.getString('Status');

не как не могу понять, как обратиться к объекту, чтобы получить строки Items и массива Operation
при чем Operation формирует объекты, которых может много быть. я понял, чтобы их посчитать надо через For перебрать.


помоги разобраться уже голову сломал!

P.S. JSON данные прикреплены к посту!
Вложения
Тип файла: txt russianpost2.txt (2.7 Кб, 148 просмотров)
Если помог: Нажми Весы и оставь отзыв!!!
Smagulov85 вне форума Ответить с цитированием
Старый 31.03.2014, 09:35   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

http://www.webdelphi.ru/2011/10/rabo...elphi-2010-xe2
Это уже читали ?
И ссылочку на Вашу библиотеку по работе с джейсоном приведите, откуда TlkJSONObject ? http://sourceforge.net/projects/lkjson/ ? Что в документации сказано ?
phomm вне форума Ответить с цитированием
Старый 31.03.2014, 10:32   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

попробуйте SuperObject.
Человек_Борща вне форума Ответить с цитированием
Старый 31.03.2014, 12:13   #4
Smagulov85
Форумчанин
 
Аватар для Smagulov85
 
Регистрация: 22.11.2009
Сообщений: 142
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
попробуйте SuperObject.
там вообще запутался!!
Если помог: Нажми Весы и оставь отзыв!!!
Smagulov85 вне форума Ответить с цитированием
Старый 31.03.2014, 12:30   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
там вообще запутался!!
И в чем же вы там запустались?

Код:
{//


//JSON здесь
{
 "name":"John Doe",
 "age":47,
 childs:[
 {
        "name":"Bob",
        "InMan":true,
        "age":12
 },
 {
        "name":"Ira",
        "InMan":false,
        "age":10
 }
 ]
}
//JSON здесь


}//

var
 JSON:ISuperObject;
 i:Integer;

procedure log(s:string);
begin
  LogMemo.Lines.Add(s);
end;

begin
  JSON := SO('<JSON блок>');
  Log('Father info: ');
  Log('Name: '+JSON.S['name'].value);
  Log('Age: '+IntToStr(JSON.I['age'].value));
  Log('Child count: '+JSON.A['childs'].length);
  for i:=0 to JSON.A['childs'].length -1 do
  begin
  Log('Child #'+IntToStr(i)+'Info: ');
  Log('Name: '+JSON.A['childs'].O[i].S['name'].value);
  Log('Age: '++IntToStr(JSON.A['childs'].O[i].B['age'],true));
  Log('Is a girl: '+BoolToStr(JSON.A['childs'].O[i].B['IsMan'],true));
  end;
end;
Вот и вся морока. Код писал в браузере.
Человек_Борща вне форума Ответить с цитированием
Старый 31.03.2014, 13:37   #6
Smagulov85
Форумчанин
 
Аватар для Smagulov85
 
Регистрация: 22.11.2009
Сообщений: 142
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
И в чем же вы там запустались?

Код:
{//


//JSON здесь
{
 "name":"John Doe",
 "age":47,
 childs:[
 {
        "name":"Bob",
        "InMan":true,
        "age":12
 },
 {
        "name":"Ira",
        "InMan":false,
        "age":10
 }
 ]
}
//JSON здесь


}//

var
 JSON:ISuperObject;
 i:Integer;

procedure log(s:string);
begin
  LogMemo.Lines.Add(s);
end;

begin
  JSON := SO('<JSON блок>');
  Log('Father info: ');
  Log('Name: '+JSON.S['name'].value);
  Log('Age: '+IntToStr(JSON.I['age'].value));
  Log('Child count: '+JSON.A['childs'].length);
  for i:=0 to JSON.A['childs'].length -1 do
  begin
  Log('Child #'+IntToStr(i)+'Info: ');
  Log('Name: '+JSON.A['childs'].O[i].S['name'].value);
  Log('Age: '++IntToStr(JSON.A['childs'].O[i].B['age'],true));
  Log('Is a girl: '+BoolToStr(JSON.A['childs'].O[i].B['IsMan'],true));
  end;
end;
Вот и вся морока. Код писал в браузере.
Спасибо за пример! косяк делаю так

Код:
JSON := SO(Memo1.Text);
  Log('RussianPost info: ');
  Log('Status: '+JSON.S['Status']);
  Log('BarCode: '+JSON.O['Items'].S['Barcode']);
получаю ошибку адреса
Изображения
Тип файла: png ScreenShot 17.png (14.3 Кб, 132 просмотров)
Если помог: Нажми Весы и оставь отзыв!!!
Smagulov85 вне форума Ответить с цитированием
Старый 31.03.2014, 13:57   #7
Smagulov85
Форумчанин
 
Аватар для Smagulov85
 
Регистрация: 22.11.2009
Сообщений: 142
По умолчанию

Извиняюсь сам тупанул в место Item написал Items
Если помог: Нажми Весы и оставь отзыв!!!
Smagulov85 вне форума Ответить с цитированием
Старый 31.03.2014, 14:19   #8
Smagulov85
Форумчанин
 
Аватар для Smagulov85
 
Регистрация: 22.11.2009
Сообщений: 142
По умолчанию

Делаю так!
Код:
 JsonArray:=JSON.A['Operations'];
  for i:=0 to JsonArray.Length -1 do
  begin
  Log('Operations #'+IntToStr(i)+'Info: ');
  Log('Name: '+JsonArray.O[i].S['Name']);
  end;
получаю ошибку адрес на for i:=0 to JsonArray.Length -1 do
Если помог: Нажми Весы и оставь отзыв!!!
Smagulov85 вне форума Ответить с цитированием
Старый 31.03.2014, 14:30   #9
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

значит там не массив.
Человек_Борща вне форума Ответить с цитированием
Старый 31.03.2014, 14:33   #10
Smagulov85
Форумчанин
 
Аватар для Smagulov85
 
Регистрация: 22.11.2009
Сообщений: 142
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
значит там не массив.
как этого!
Изображения
Тип файла: png ScreenShot 18.png (21.9 Кб, 130 просмотров)
Если помог: Нажми Весы и оставь отзыв!!!
Smagulov85 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JSON -> TDataSet Delphi_ProGer Общие вопросы Delphi 3 30.12.2013 00:37
формат json Glowworm JavaScript, Ajax 32 30.05.2013 23:55
C++ JSON qip2005 Visual C++ 2 05.11.2012 19:48
Qt + Json Lindemann66 Qt и кроссплатформенное программирование С/С++ 0 18.08.2011 15:26
JSON и C++Builder s2dent Общие вопросы C/C++ 0 15.06.2010 14:46