You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MAUI Blazor中无法加载JSON文件至List的问题求助

JSON读取异常解决方案及内联读取实现

一、项目JSON文件读取修复方案

1. 先确认文件配置

把项目中的JSON文件生成操作设为Embedded resource或Content,复制到输出目录设为如果较新则复制,确保文件能被程序访问到。

2. 正确读取并反序列化代码

在组件生命周期方法中异步读取(不要在@code直接赋值时执行),示例如下:

protected override async Task OnInitializedAsync()
{
    // 方式1:读取嵌入式资源
    var assembly = typeof(Index).Assembly;
    using var stream = assembly.GetManifestResourceStream("MauiAppBurned.你的JSON文件名.json");
    using var reader = new StreamReader(stream);
    var jsonContent = await reader.ReadToEndAsync();

    // 反序列化到对应模型,取出活动列表
    var rootModel = JsonSerializer.Deserialize<Rootobject>(jsonContent);
    ActivityList = rootModel.burned.ACTIVITY;
}

如果JSON放在wwwroot目录下,也可以用HttpClient读取:

protected override async Task OnInitializedAsync()
{
    var rootModel = await Http.GetFromJsonAsync<Rootobject>("你的JSON文件名.json");
    ActivityList = rootModel.burned.ACTIVITY;
}

3. 常见问题排查

  • 确保JSON结构和模型完全匹配:根节点必须是{"burned": {"ACTIVITY": [ ... ]}}格式
  • 检查属性名一致性:比如JSON里的"METS"不能带空格,要和ACTIVITY类的METS属性名完全一致
  • 数值格式正确:METS是decimal类型,JSON里直接写2.5,不要加引号

二、内联读取JSON列表实现

如果不想依赖外部文件,直接在代码中内联完整的JSON结构:

protected override void OnInitialized()
{
    string inlineJson = @"
    {
        ""burned"": {
            ""ACTIVITY"": [
                {
                    ""CD"": ""19260"",
                    ""METS"": 2.5,
                    ""CATEGORY"": ""winter activities"",
                    ""DESC"": ""snow blower, walking and pushing""
                },
                {
                    ""CD"": ""12345"",
                    ""METS"": 3.0,
                    ""CATEGORY"": ""sports"",
                    ""DESC"": ""running""
                }
            ]
        }
    }";

    var rootModel = JsonSerializer.Deserialize<Rootobject>(inlineJson);
    ActivityList = rootModel.burned.ACTIVITY;
}

额外代码优化建议

在Submit方法中,要加空值判断避免空引用异常:

ACTIVITY model = ActivityList.FirstOrDefault(a => a.CD == submitActivity.CD);
if (model == null)
{
    finalresult = "请选择有效的活动";
    return;
}

内容的提问来源于stack exchange,提问作者KALYANA ALLAM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 20:55:53