Разбор JSON в TListBox

Добрый вечер ребята!

В настоящее время я пытаюсь собрать клиент 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 так много, что она немного ошеломляет людей, плохо знакомых с этим форматом.

Наилучшие пожелания, Скотт Притчард.

8
задан Scott Pritchard 16 July 2012 в 19:47
поделиться