1. 通过 JsonSerializer 类的 Serialize/Deserialize 函数,示例代码如下:
using System; using System.Text.Json; using System.Text.Json.Serialization; namespace ConsoleApp { public class RegAccessInfo { [JsonInclude] public string DeviceId; [JsonInclude] public uint RegAddr; [JsonInclude] public uint RegData; public override string ToString() { string str = ""; str += "DeviceId=" + DeviceId; str += " RegAddr=" + RegAddr; str += " RegData=" + RegData; return str; } } class Program { static void Main(string[] args) { RegAccessInfo testInfo = new RegAccessInfo(); testInfo.DeviceId = "dev01"; testInfo.RegAddr = 0xC0; testInfo.RegData = 0x2018; Console.WriteLine("testInfo: " + testInfo); string jsonString = JsonSerializer.Serialize(testInfo); RegAccessInfo testInfo2 = JsonSerializer.Deserialize<RegAccessInfo>(jsonString); Console.WriteLine("testInfo2: " + testInfo2); byte[] jsonUtf8Bytes = JsonSerializer.SerializeToUtf8Bytes(testInfo); var readOnlySpan = new ReadOnlySpan<byte>(jsonUtf8Bytes); RegAccessInfo testInfo3 = JsonSerializer.Deserialize<RegAccessInfo>(readOnlySpan); Console.WriteLine("testInfo3: " + testInfo3); Console.ReadLine(); } } }
2. 注:要序列化的数据成员需要用 [JsonInclude] 标记,
官方参考:如何在 .NET 中对 JSON 进行序列化和反序列化(封送和拆收)