procedure TMainForm.btn1Click(Sender: TObject);
var
lHTTP: TIdHTTP;
begin
lHTTP := TIdHTTP.Create(nil);
try
mmo1.Text := lHTTP.Get('http://guessit.io/guess?filename=House.of.Cards.2013.S02E03.1080p.NF.WEBRip.DD5.1.x264-NTb.mkv');
finally
lHTTP.Free;
end;
end;
结果会是这样的:德尔福如何从HTTP解析指定的值获得
{
"series":"House of Cards",
"episodeNumber":3,
"releaseGroup":"NTb",
"format":"WEBRip",
"season":2,
"audioCodec":"DolbyDigital",
"year":2013,
"mimetype":"video/x-matroska",
"container":"mkv",
"videoCodec":"h264",
"other":[
"Netflix"
],
"audioChannels":"5.1",
"screenSize":"1080p",
"type":"episode"
}
我怎么可以阅读系列(“系列”:“纸牌屋”)的值例。
我尝试使用
Function ExtractBetweenTags(Const Line, TagI, TagF: string): string;
var
i, f : integer;
begin
i := Pos(TagI, Line);
f := Pos(TagF, Copy(Line, i+length(TagI), MAXINT));
if (i > 0) and (f > 0) then
Result:= Copy(Line, i+length(TagI), f-1);
end;
mmo1.Text := StringReplace(ExtractBetweenTags(mmo1.Text,'"series": "','"'), ' ', '-',[rfReplaceAll, rfIgnoreCase]);
,但我需要分析所有的值自动
你正在使用哪个Delphi版本?您以JSON格式获取信息,而较新的版本具有JSON解析功能。对于更老的你可以使用一些现有的第三方库。 – 2014-11-21 09:53:46
@DalijaPrasnikar德尔福XE7,我不知道这个输出是否叫JSON或不。 '{“系列”:“卡片屋”,“片段编号”:3,“releaseGroup”:“NTb”,“格式”:“WEBRip”,“season”:2,“audioCodec”:“DolbyDigital” “:2013,”mimetype“:”video/x-matroska“,”container“:”mkv“,”videoCodec“:”h264“,”other“:[”Netflix“],”audioChannels“:”5.1“, “screenSize”:“1080p”,“type”:“episode”}' – RepeatUntil 2014-11-21 10:14:31
如果是JSON,友好的服务器会在HTTP响应中指明它为内容类型头。您可以使用Firebug等浏览器插件查看HTTP标头。 (它对我来说看起来像JSON) – mjn 2014-11-21 10:48:13