Преобразовать многострочный текст в 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"): Скрипт выполнен успешно.