2014-02-28 109 views

回答

1

.pkpass文件實際上是一個ZIP存檔。在檔案裏面你會發現一個pass.json文件,其中包含關卡的所有元數據。

使用Windows Phone兼容ZIP庫Silverlight SharpZipLib.pkpass中提取pass.json

string passDotJsonAsJson = null; 
using(Stream pkpassAsStream = await client.GetPkpass()) 
{ 
    responseStream.Position = 0; 
    using(ZipFile pkpass = new ZipFile(pkpassAsStream)) 
    { 
     var passDotJson = pkpass.GetEntry("pass.json"); 

     using (var passDotJsonAsStream = pkpass.GetInputStream(passDotJson)) 
     { 
      var reader = new StreamReader(passDotJsonAsStream); 
      passDotJsonAsJson = await reader.ReadToEndAsync(); 
     } 
    } 
} 

而你有它。 passDotJsonAsJson現在包含作爲json字符串的pass。您現在可以使用Json.NET使其成爲.NET對象。

+4

你剛剛回答你自己的問題嗎? – KRUKUSA

+0

非常感謝這樣的答案,我找不到合適的應用程序來打開.pkpass,所以我會寫我自己的只是試試xamarin) – NikitaKo

相關問題