首先,我正在开发一个 WindowsPhone8.1 应用程序,该应用程序具有来自Web的JSON(名称,电话号码,电子邮件-...)文件。我将这个JSON数据存储在一个列表中(contact是一个具有JSON参数的类。
我想在我的WindowsPhone上存储(本地无云)此列表(它是带有标记收藏夹的列表,而不是整个列表)。
我尝试使用StorageFolder和StorageFile,遗憾的是,我失败了。删除和加载文件时遇到问题。
使用C#,Xaml在Microsoft Visual Studio Premium 2013 Update 3中进行开发。
答案 0 :(得分:2)
我使用这个类,你需要通过nuget提供的Json包。
class StorageService : IConfigurationService
{
readonly StorageFolder _local = ApplicationData.Current.LocalFolder;
public async void Save<T>(string key, T obj)
{
var json = JsonConvert.SerializeObject(obj);
var dataFolder = await _local.CreateFolderAsync("DataFolder",
CreationCollisionOption.OpenIfExists);
var file = await dataFolder.CreateFileAsync(key,
CreationCollisionOption.ReplaceExisting);
await FileIO.WriteTextAsync(file, json);
}
public async Task<T> Load<T>(string key)
{
try
{
var dataFolder = await _local.GetFolderAsync("DataFolder");
var file = await dataFolder.OpenStreamForReadAsync(key);
string json;
using (var streamReader = new StreamReader(file))
{
json = streamReader.ReadToEnd();
}
return JsonConvert.DeserializeObject<T>(json);
}
catch (Exception)
{
return default(T);
}
}
}