C# MAUI怎么解析JSON数据 MAUI JSON序列化教程

在 .NET MAUI 中解析 JSON 最推荐使用内置的 System.Text.Json;需先定义匹配的 C# 数据模型,再通过 JsonSerializer.Deserialize(jsonString) 反序列化,支持字符串、文件及网络响应,注意异常处理与异步上下文。

c# maui怎么解析json数据 maui json序列化教程

在 .NET MAUI 中解析 JSON 数据,最推荐的方式是使用内置的 System.Text.Json(.NET 6+ 默认 JSON 库),它轻量、高性能、无需额外 NuGet 包,且与 MAUI 完全兼容。

定义匹配的 C# 类型

JSON 解析前必须先有对应的数据模型。比如你收到如下 JSON:

{“name”:”张三”,”age”:28,”isActive”:true}

就应创建一个匹配的类:

public class User
{
    public string Name { get; set; }
    public int Age { get; set; }
    public bool IsActive { get; set; }
}

注意:属性名默认需与 JSON 字段名一致(区分大小写),如不一致可用 [JsonPropertyName("user_name")] 特性标记。

从字符串反序列化为对象

这是最常见场景,例如从 API 响应或本地 JSON 文件读取后解析:

  • 确保已引入命名空间:using System.Text.Json;
  • 调用 JsonSerializer.Deserialize(jsonString)
  • 建议加 try-catch 处理格式错误

示例代码:

string json = @"{""name"":""李四"",""age"":30,""isActive"":false}";
try
{
    User user = JsonSerializer.Deserialize(json);
    Console.WriteLine($"{user.Name}, {user.Age}");
}
catch (JsonException ex)
{
    Console.WriteLine("JSON 格式错误:" + ex.Message);
}

处理数组和嵌套结构

JSON 数组直接映射为 C# 的 ListT[];嵌套对象则用子类表示。

羚珑

羚珑

京东推出的一站式AI图像处理平台

下载

例如解析:
[{“id”:1,”profile”:{“nick”:”小王”,”score”:95}}]

对应模型:

public class Player
{
    public int Id { get; set; }
    public Profile Profile { get; set; }
}

public class Profile { public string Nick { get; set; } public int Score { get; set; } }

解析方式不变:

List players = JsonSerializer.Deserialize>(jsonString);

从文件或网络加载 JSON 后解析

MAUI 支持跨平台文件访问(如 FileSystem.AppDataDirectory)和 HTTP 请求:

  • 读取本地 JSON 文件(如 data.json):
string path = Path.Combine(FileSystem.AppDataDirectory, "data.json");
string json = await File.ReadAllTextAsync(path);
var data = JsonSerializer.Deserialize(json);
  • 从网络获取(配合 HttpClient):
using var client = new HttpClient();
string json = await client.GetStringAsync("https://api.example.com/users");
var users = JsonSerializer.Deserialize>(json);

注意:网络请求请放在异步方法中,并在 UI 线程安全地更新界面(如用 MainThread.InvokeOnMainThreadAsync)。

基本上就这些。System.Text.Json 在 MAUI 中开箱即用,不需要 Newtonsoft.Json(除非遗留项目强依赖)。只要模型对得上、注意异常处理、分清同步/异步上下文,JSON 解析很稳。

https://www.php.cn/faq/1991718.html

发表回复

Your email address will not be published. Required fields are marked *