Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / JSON - получить имя параметра / 15 сообщений из 15, страница 1 из 1
05.12.2018, 15:43
    #39742914
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON - получить имя параметра
кусок JSON объекта:


Нужно пройтись циклом по параметру (объекту) searchParams и определить:
- является ли подчиненный объект простым значением;
- найти имя значения;

Не понимаю, почему разработчики не реализовали какой-нибудь метод или свойство, типа Name?

Delphi Tokyo, использую стандартный модуль System.JSON.

Вот мой код:
Код: pascal
1.
2.
3.
4.
5.
6.
    for I := 0 to Pred(jSearchParams.Count) do
    begin
      if jSearchParams.Pairs[i].JsonValue is TJSONValue then
      begin
        sName := jSearchParams.Pairs[i].что здесь;
        sVal  := jSearchParams.Pairs[i].JsonValue.Value;



почему то условие "if jSearchParams.Pairs[i].JsonValue is TJSONValue then" пропускает внутрь себя owner, хотя видно, что owner - это массив, а не Value. Или я чего-то не понял?
Спасибо.
...
Рейтинг: 0 / 0
05.12.2018, 15:48
    #39742921
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON - получить имя параметра
такс... с именем параметра разобрался (что-то похожее нашел здесь http://www.webdelphi.ru/2011/10/rabota-s-json-v-delphi-2010-xe2/ )
Код: pascal
1.
sName := jSearchParams.Pairs[i].JsonString.Value;



это ж надо такое придумать


осталось понять, как проверить тип объекта, чтобы "вылавливать" только простые значения
...
Рейтинг: 0 / 0
05.12.2018, 16:05
    #39742932
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON - получить имя параметра
...
Рейтинг: 0 / 0
05.12.2018, 16:05
    #39742933
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON - получить имя параметра
В разы удобней и понятней.
...
Рейтинг: 0 / 0
05.12.2018, 16:29
    #39742953
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON - получить имя параметра
...
Рейтинг: 0 / 0
05.12.2018, 16:31
    #39742958
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON - получить имя параметра
Я же не просил советов, что лучше использовать.
...
Рейтинг: 0 / 0
05.12.2018, 16:33
    #39742963
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON - получить имя параметра
Чем?
...
Рейтинг: 0 / 0
05.12.2018, 16:39
    #39742971
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON - получить имя параметра
rgreat, может, вам сделать отдельную тему для флуда
?
...
Рейтинг: 0 / 0
05.12.2018, 16:43
    #39742974
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON - получить имя параметра
X11осталось понять, как проверить тип объекта, чтобы "вылавливать" только простые значения
Код: pascal
1.
if (LObj is TJSONString) or (LObj is TJSONBool) then
...
Рейтинг: 0 / 0
05.12.2018, 16:47
    #39742977
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON - получить имя параметра
_Vasilisk_, и перечислять все возможные типы?
...
Рейтинг: 0 / 0
05.12.2018, 16:47
    #39742978
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON - получить имя параметра
X11,

Это публичный форум.
...
Рейтинг: 0 / 0
05.12.2018, 16:47
    #39742979
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON - получить имя параметра
X11почему то условие "if jSearchParams.Pairs[i].JsonValue is TJSONValue then" пропускает внутрь себя owner, хотя видно, что owner - это массив, а не Value. Или я чего-то не понял?
Спасибо.
Потому что TJSONValue -- это общий предок для всех значимых типов (т.е. TJSONArray будет являться TJSONValue). Надо проверять на конкретные типы типа TJSONString
...
Рейтинг: 0 / 0
05.12.2018, 16:57
    #39742990
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON - получить имя параметра
X11и перечислять все возможные типы?Все остальные - наследники этих. Ну можешь еще TJSONNull добавить
...
Рейтинг: 0 / 0
05.12.2018, 17:02
    #39742994
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON - получить имя параметра
я сделал if not TJSONArray
...
Рейтинг: 0 / 0
05.12.2018, 17:22
    #39743010
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSON - получить имя параметра
X11я сделал if not TJSONArrayTJsonObject забыл
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / JSON - получить имя параметра / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]