Как читать поток https JSON с помощью perl?

Хорошо, я постараюсь быть максимально подробным.

Мне нужно подключиться к URL-адресу https, который передает данные JSON, и искать ключевые слова через REGEX, поскольку потоки данных затем берут соответствующий элемент JSON, декодируют его и вставляют в базу данных.

REGEX on - это не проблема, которая относительно проста.

С чем я борюсь, так это с чтением строки данных. Я пробовал несколько примеров, которые я нашел в Интернете, с использованием LWP, но там, где поток никогда не прекращает загрузку, скрипт зависает.

Вот самое близкое, что я получил

#!/usr/bin/perl

use strict;
use warnings;
use LWP::Simple;
use IO::String;

my $handle = IO::String->new(get("https://stackoverflow.com"));
while (defined (my $line = <$handle>)) {
  print $line; #Inserted for testing

  #Decode and insert into DB here       
}
close $handle;

Данные поступают довольно быстро, поэтому сценарий должен быть эффективным.

Любые указатели относительно того, как это сделать, были бы замечательными.

Спасибо, Шон.


person Sean Smith    schedule 06.04.2017    source источник


Ответы (1)


JSON::SL может вам помочь.

Также см. Час. Ответ Оуэнса, где он сравнивает JSON::SL и JSON::Streaming::Reader.

person Chankey Pathak    schedule 06.04.2017
comment
Это очень помогает при обработке JSON, но я все еще не могу понять, как передать входящие данные в JSON::SL. - person Sean Smith; 07.04.2017