Добрый вечер ребята!
В настоящее время я пытаюсь собрать клиент CloudFlare
для рабочего стола. Я подключился к их API и успешно получил результаты JSON с помощью POST-запроса (, результаты которого были выведены вTMemo
). Теперь я хочу проанализировать эти результаты вTListBox
(см., например, область, выделенную жирным шрифтом ). Проект разрабатывается в Firemonkey
.
Вот отформатированный макет ответа с некоторым примерным содержанием;
{
- response: {
|- ips: [
|- {
ip: "xxx.xxx.xxx.xxx",
classification: "threat",
hits: xx,
latitude: null,
longitude: null,
zone_name: "domain-example1"
},
- {
ip: "yyy.yyy.yyy.yyy",
classification: "robot",
hits: yy,
latitude: null,
longitude: null,
zone_name: "domain-example2"
}
]
}
result : "success",
msg: null
}
Я пробовал несколько разных компонентов-SuperObject , JSON Designtime Parser Павла Гловацкого , Tiny -JSON , LKJSON и встроенный DBXJSON. Однако у меня вообще нет опыта работы с JSON, и я не могу найти самые простые примеры, с которых я мог бы начать. Многие из них показывают образцы данных, но все те, которые я пробовал, не работают так, как я ожидал, скорее всего, потому, что я их неправильно понимаю. Я предполагаю, что компоненты работают, поэтому мне нужно руководство по началу работы.
В ips
«массиве» (сотни, а часто и тысячи результатов. Прошу прощения, если это не так, я бы предположил, что он известен как массив, но опять же, я совершенно новичок в JSON ).
То, что я действительно ищу, - это какой-то очень простой пример кода, который я могу собрать из (вместе с тем, какой компонент он использует для синтаксического анализа и тому подобного ).
Например, если я хочу получить каждый ip
из результатов JSON и поместить каждый как отдельный элемент вTListBox
(используя метод TListBox.add
), как мне добиться этого?
Когда я говорю ip
, я имею в виду значение (в отформатированном макете выше, это будет xxx.xxx.xxx.xxx
или yyy.yyy.yyy.yyy
)..
Кроме того, если я хочу найти «запись» (? )по его IP-адресу из результатов JSON и вывести данные в массив delphi -, например;
Result : Array of String = ['"xxx.xxx.xxx.xxx"','"threat"','xx','null','null','"domain-example1"'];
это возможно с JSON? (Если это рассматривается как отдельный вопрос или слишком несвязанный,пожалуйста, не стесняйтесь редактировать его, а не закрывать вопрос в целом ).
Ближе всего к этому я получил не только ip, но и все остальные данные в отдельномTListItem
(то есть response
, ips
, ip
, classification
, xxx.xxx.xxx.xxx
и все остальное имело свой собственный элемент, а также несколько пустых элементов между каждым не -пустым элементом ).
Я уверен, что это чрезвычайно просто сделать, но информации о JSON так много, что она немного ошеломляет людей, плохо знакомых с этим форматом.
Наилучшие пожелания, Скотт Притчард.