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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2018, 10:27   #1
niockasd
Пользователь
 
Регистрация: 01.12.2015
Сообщений: 82
По умолчанию DBXJSON, массив без имени

Есть JSON ответ
Код:
{
"test":[
   [0,1,2],
   [0,1,2],
   [0,1,2],
   ...,
   [0,1,2],
]
}
До массив test я добрался.. Могу вывести каждую строку в цикле в виде [0,1,2] и т.д.
А как получить именно значения из вложенного массива, он не имеет имени, не понятно как к нему обратится, не парсить же "[0,1,2]" вручную, наверно этот момент продумали ...

Последний раз редактировалось niockasd; 24.09.2018 в 10:31.
niockasd вне форума Ответить с цитированием
Старый 24.09.2018, 10:46   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Для работы с JSON-массивами в модуле DBXJSON.pas предусмотрено два класса:

TJSONArray — класс массива
TJSONArrayEnumerator — перечислитель элементов массива.

Код:
JsonArray:=FJSONObject.Get('items').JsonValue as TJSONArray;
А дальше по индексу в массиве

Более полное описание с примерами: http://www.webdelphi.ru/2011/10/rabo...lphi-2010-xe2/
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 24.09.2018, 11:15   #3
niockasd
Пользователь
 
Регистрация: 01.12.2015
Сообщений: 82
По умолчанию

Сори, немного не понял ответа.

Цитата:
JsonArray:=FJSONObject.Get('items') .JsonValue as TJSONArray;
это я получаю массив items в переменную JsonArray.

Но там есть и вложеные массивы к которым не обратится по имени.
Перебирая массив по индексу
Код:
     
 test:=Json.Get('test').JsonValue as TJSONArray;

      for I := 0 to test.Count-1 do
        begin
          memo1.Lines.Add(test.Get(1).ToString);

        end;
в memo я все так же получаю весь массив на тик цикла
([0,1,2])

В мануале указано еще и тайтл
Код:
ShowMessage((JsonArray.Get(i) as TJSONObject).Get('title').JsonValue.Value)
но у меня то его нету...
niockasd вне форума Ответить с цитированием
Старый 24.09.2018, 11:25   #4
niockasd
Пользователь
 
Регистрация: 01.12.2015
Сообщений: 82
По умолчанию

аа, все понял. спасибо
niockasd вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа для открытия от имени администратора без отключения uac baykersha Помощь студентам 4 20.07.2013 11:42
Обратиться к графику без указания имени ruavia3 Microsoft Office Excel 2 09.04.2009 14:12
Авторизация по IdHTTP без имени компонента tuftel Работа с сетью в Delphi 11 17.03.2009 04:20
Прочесс без имени пользователя delphin100 Общие вопросы Delphi 0 29.10.2008 06:45