如何在解决方案Windows 10 中读取文件json?
how read file json in the solution Windows 10?
我正在尝试读取解决方案中的文件 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);
}
当应用程序为 运行 时,它加载文件
但它不是对象的序列化器
您需要一个包装器模型来匹配您正在反序列化的 JSON 结构:
public class MyModel
{
public DtoTemas[] DtoTemas { get; set; }
}
然后反序列化到这个模型:
var model = Newtonsoft.Json.JsonConvert.DeserializeObject<MyModel>(jsonResult);
return model.DtoTemas;
原因是因为您的 JSON 并不代表您尝试反序列化的 IEnumerable<DtoTemas>
而是一个具有 属性 的对象 DtoTemas
表示您要查找的集合。
如果你想让这个工作:
JsonConvert.DeserializeObject<IEnumerable<DtoTemas>>(jsonResult);
那么您的文件必须如下所示:
[
{
"Id": "1",
"Nome": "Bing",
"NomeBuscaNaApi": "",
"NomeResource": "Bing",
},
{
"Id": "2",
"Nome": "Personalizado",
"NomeBuscaNaApi": "",
"NomeResource": "Personalizado",
},
...
]
我正在尝试读取解决方案中的文件 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);
}
当应用程序为 运行 时,它加载文件
但它不是对象的序列化器
您需要一个包装器模型来匹配您正在反序列化的 JSON 结构:
public class MyModel
{
public DtoTemas[] DtoTemas { get; set; }
}
然后反序列化到这个模型:
var model = Newtonsoft.Json.JsonConvert.DeserializeObject<MyModel>(jsonResult);
return model.DtoTemas;
原因是因为您的 JSON 并不代表您尝试反序列化的 IEnumerable<DtoTemas>
而是一个具有 属性 的对象 DtoTemas
表示您要查找的集合。
如果你想让这个工作:
JsonConvert.DeserializeObject<IEnumerable<DtoTemas>>(jsonResult);
那么您的文件必须如下所示:
[
{
"Id": "1",
"Nome": "Bing",
"NomeBuscaNaApi": "",
"NomeResource": "Bing",
},
{
"Id": "2",
"Nome": "Personalizado",
"NomeBuscaNaApi": "",
"NomeResource": "Personalizado",
},
...
]