Преобразовать многострочный текст в JSON объект с парами ключ-значение, построчно. Нечётные строки будут ключами, чётные — значениями.

 

Строки-ключи автоматически преобразовываются по такому принципу:

1.Строка начинается с маленькой буквы.

2.Все пробелы и знаки "-" удаляются, каждое новое слово, что идёт за разделителем, начинается с большой буквы.

 

Например:

Host -> host

keep-alive -> keepAlive

Upgrade-Insecure-Requests -> upgradeInsecureRequests

Accept-Language -> acceptLanguage

 

Синтаксис

function TextWithCRLFToJSON(sText: string): string;

 

Параметры и возвращаемые значения

Параметр

Тип

Значение

sText

string

исходная строка.

 

Результат функции

Возвращает JSON объект в текстовом виде, разбитый на пары "ключ" -> "значение".

 

Пример

const
  sHeaders =
    'Host'#13#10 +
    'mychat-server.com'#13#10 +
    'Connection'#13#10 +
    'keep-alive'#13#10 +
    'Upgrade-Insecure-Requests'#13#10 +
    '1'#13#10 +
    'User-Agent'#13#10 +
    'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'#13#10 +
    'Accept'#13#10 +
    'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'#13#10 +
    'Accept-Encoding'#13#10 +
    'gzip, deflate, sdch, br'#13#10 +
    'Accept-Language'#13#10 +
    'uk,ru;q=0.8,en-US;q=0.6,en;q=0.4'#13#10 +
    'Cookie'#13#10 +
    'io=LZl3ATHZ7MomZ50TAAAA';
var
  sJSONData, s, sList, sKey: string;
begin
  sJSONData := TextWithCRLFToJSON(sHeaders);
  
  sList := 'host,connection,upgradeInsecureRequests,userAgent,accept,acceptLanguage,cookie';
  
    while length(sList) > 0 do begin
      sKey := Fetch(sList, ',');
      
        if JSONGetString(sJSONData, sKey, s) = 0 then mLogScript(s, sKey);
    end;
end.

Результат работы скрипта

[13:40:53] (Log "TextWithCRLFToJSON"): [host] mychat-server.com

[13:40:53] (Log "TextWithCRLFToJSON"): [connection] keep-alive

[13:40:53] (Log "TextWithCRLFToJSON"): [upgradeInsecureRequests] 1

[13:40:53] (Log "TextWithCRLFToJSON"): [userAgent] Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36

[13:40:53] (Log "TextWithCRLFToJSON"): [accept] text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

[13:40:53] (Log "TextWithCRLFToJSON"): [acceptLanguage] uk,ru;q=0.8,en-US;q=0.6,en;q=0.4

[13:40:53] (Log "TextWithCRLFToJSON"): [cookie] io=LZl3ATHZ7MomZ50TAAAA

[13:40:53] (Run "TextWithCRLFToJSON"): Время выполнения скрипта: 6 мс

[13:40:53] (Run "TextWithCRLFToJSON"): Скрипт выполнен успешно.
 

Ещё посмотреть

Fetch

JSONGetString

Length

mLogScript