我正在尝试在解决方案中读取文件json,但是无法正常工作。
此文件
这是我的代码
public static async Task<IEnumerable<DtoTemas>> ListarTemas()
{
string jsonResult = string.Empty;
try
{
string filename = "TemasApi.json";
var pasta = Windows.ApplicationModel.Package.Current.InstalledLocation;
StorageFile file = await pasta.GetFileAsync(filename);
jsonResult = await StorageFileHelper.StorageFileToTextAsync(file);
}
catch (Exception ex)
{
throw ex;
}
return Newtonsoft.Json.JsonConvert.DeserializeObject<IEnumerable<DtoTemas>>(jsonResult);
}
当应用程序运行时,它会加载文件
但它不是对象的序列化器
答案 0 :(得分:1)
您需要一个包装器模型来匹配您要反序列化的JSON结构:
#container
然后反序列化为此模型:
public class MyModel
{
public DtoTemas[] DtoTemas { get; set; }
}
原因是因为你的JSON并不代表你试图反序列化的var model = Newtonsoft.Json.JsonConvert.DeserializeObject<MyModel>(jsonResult);
return model.DtoTemas;
,而是一个有一个名为IEnumerable<DtoTemas>
的属性的对象代表你的集合正在寻找。
如果你想要这个:
DtoTemas
那么你的文件必须如下所示:
JsonConvert.DeserializeObject<IEnumerable<DtoTemas>>(jsonResult);