HMe*_*ser 5 delphi json antivirus delphi-2010
今天我正在使用virustotal api,同时以这种形式返回结果:
{ "permalink" : "http://www.virustotal.com/file-scan/report.html?id=7b6b268cbca9d421aabba5f08533d3dcaba50e0f7887b07ef2bd66bf218b35ff-1304089592",
"report" : [ "2011-04-29 15:06:32",
{ "AVG" : "Exploit_c.TVH",
"AhnLab-V3" : "PDF/Exploit",
"AntiVir" : "EXP/Pidief.UK",
"Antiy-AVL" : "Trojan/win32.agent",
"Avast" : "JS:Pdfka-gen",
"Avast5" : "JS:Pdfka-gen",
"BitDefender" : "Exploit.PDF-JS.Gen",
"CAT-QuickHeal" : "",
"ClamAV" : "",
"Comodo" : "Exploit.JS.Pidief.~AWQ",
"DrWeb" : "",
"Emsisoft" : "Exploit.JS.Pdfka!IK",
"F-Prot" : "",
"F-Secure" : "Exploit:W32/Pidief.DEE",
"Fortinet" : "",
"GData" : "",
"Ikarus" : "Exploit.JS.Pdfka",
"Jiangmin" : "",
"K7AntiVirus" : "",
"Kaspersky" : "Exploit.JS.Pdfka.dnc",
"McAfee" : "",
"McAfee-GW-Edition" : "",
"Microsoft" : "Exploit:Win32/Pdfjsc.NJ",
"NOD32" : "PDF/Exploit.Pidief.PGD",
"Norman" : "",
"PCTools" : "Trojan.Pidief",
"Panda" : "",
"Prevx" : "",
"Rising" : "",
"SUPERAntiSpyware" : "",
"Sophos" : "Troj/PDFJs-RD",
"Symantec" : "Trojan.Pidief",
"TheHacker" : "",
"TrendMicro" : "TROJ_PIDIEF.VTG",
"TrendMicro-HouseCall" : "TROJ_PIDIEF.VTG",
"VBA32" : "",
"VIPRE" : "Exploit.PDF-JS.Gen (v)",
"ViRobot" : "PDF.S.Exploit.74634",
"VirusBuster" : "",
"eSafe" : "",
"eTrust-Vet" : ""
}
],
"result" : 1
}
Run Code Online (Sandbox Code Playgroud)
我想知道如何解析这个结果来填写备忘录:
Memo1.Lines.Add(Format('Antivirus: %0s Result: %1s', [...]));
Run Code Online (Sandbox Code Playgroud)
好吧,我真的不知道所有可能存在的JSon组件可能有人可以指引我到正确的方向吗?
最亲切的问候,
H.Meiser
我推荐开源JSON库SuperObject和在线JSON检查器,如http://jsonviewer.stack.hu/或http://json.parser.online.fr/(这个编辑器有一个非常有用的选项,它将类型信息添加到视图)
解析Json字符串并不困难,您可以使用DBXJSON自delphi 2010以来包含的单位.
检查此示例代码
Uses
DBXJSON;
procedure TForm1.ParseString(const AString: string);
var
json : TJSONObject;
jPair : TJSONPair;
jValue : TJSONValue;
jcValue : TJSONValue;
l,i : Integer;
begin
json := TJSONObject.ParseJSONValue(TEncoding.ASCII.GetBytes(AString),0) as TJSONObject;
try
//get the pair to evaluate in this case the index is 1
jPair := json.Get(1);
//cast the JsonValue to TJSONArray to access the elements of the array
jValue := TJSONArray(jPair.JsonValue).Get(1);
l:=TJSONArray(jValue).Size;
for i:=0 to l-1 do
begin
//get the i element of the array
jcValue := TJSONArray(jValue).Get(i);
//get the pair pointing to the i element
jPair := TJSONPair(jcValue);
//show the result
Memo1.Lines.Add(Format('Antivirus %s Result %s',[jPair.JsonString.Value,jPair.JsonValue.Value]));
end;
finally
json.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
作为额外的建议,您必须阅读Json教程以了解如何解释Json格式,并且必须以这种方式准备好使用任何可用的库.
| 归档时间: |
|
| 查看次数: |
2048 次 |
| 最近记录: |