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 进行序列化和反序列化(封送和拆收)

 

 

  

 

posted on 2021-11-02 10:06  青叶煮酒  阅读(112)  评论(0编辑  收藏  举报