我需要从iOS Passbook文件中获取数据,以便在我的Windows Phone应用程序中使用。我可以下载它,但如何从中获取数据?看起来是二元的?
答案 0 :(得分:1)
.pkpass
文件实际上是 ZIP存档。在存档中,您将找到一个pass.json
文件,其中包含传递的所有元数据。
使用Windows Phone兼容的ZIP库Silverlight SharpZipLib从pass.json
中提取.pkpass
。
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字符串的传递。您现在可以使用Json.NET使其成为.NET对象。