我在/resources/raw中有JSON文件,但当我尝试加载时出现错误:System.IO.FileNotFoundException:"找不到文件"/dinks.JSON"。"代码:
string drinksJsonData = File.ReadAllText("drinks.json");
var drinks = JsonSerializer.Deserialize<List<drinksclass>>(drinksJsonData);
if(drinks != null)
{
foreach(var drink in drinks)
{
await DisplayAlert("ALERT", "WORKING", "OK");
}
}
我在.csproj中有<MauiAsset Include="ResourcesRaw**" LogicalName="%(RecursiveDir)%(Filename)%(Extension)" />
和<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="6.0.0" />
。我也尝试过更改构建设置,但仍然不起作用。
您可以使用方法FileSystem.OpenAppPackageFileAsync
来实现此功能。
请参考以下代码:
private async void OnReadClicked(object sender, EventArgs e)
{
var json = await LoadMauiAsset();
await DisplayAlert("", json, "OK");
}
async Task<string> LoadMauiAsset()
{
try
{
using var stream = await FileSystem.OpenAppPackageFileAsync("fake.json");
using var reader = new StreamReader(stream);
return reader.ReadToEnd();
}
catch (Exception ex)
{
return "";
}
}
注意:请将Jason的构建操作设置为MauiAsset
。