tests/DotNetCommon.Test/Serialize/SerializeTests.cs

(开头部分) 8KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using NUnit.Framework;
using Shouldly;
using System;
using DotNetCommon.Extensions;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Serialization;
using System.Text.Json;
using System.Collections.Generic;

namespace DotNetCommon.Test.Serialize
{
    [TestFixture]
    internal sealed class SerializeTests
    {
        /// <summary>
        /// NumberConverter、DateTimeConverter
        /// </summary>
        [Test]
        public void ToJsonTest()
        {
            var obj = new Person()
            {
                Id = long.MaxValue,
                Name = "小明",
                State = EnumState.Close,
                Birth = DateTime.Parse("2023-06-04 15:52:01.1234567 +08:00"),
                Addr = "天明路"
            };
            var str = obj.ToJson();
            str.ShouldBe("{\"Id\":9223372036854775807,\"Birth\":\"2023-06-04T15:52:01.1234567+08:00\",\"Addr\":\"天明路\",\"Name\":\"小明\",\"StudentId\":0,\"ClassId\":null,\"State\":1}");
            var str2 = str.ToObject<JObject>().ToJson();
            str2.ShouldBe(str);
        }


        [Test]
        public void ToJsonFastTest()
        {
            //system.text.json 默认:
            var str = System.Text.Json.JsonSerializer.Serialize(DateTime.Parse("2023-06-04 16:40:17"));
            str.ShouldBe("\"2023-06-04T16:40:17\"");
            var str3 = System.Text.Json.JsonSerializer.Serialize(DateTime.Parse("2023-06-04"));
            str3.ShouldBe("\"2023-06-04T00:00:00\"");

            //datetime.tostring 默认:
            var s = DateTime.Parse("2023-06-04 16:40:17").ToString();
            s.ShouldBe("2023/6/4 16:40:17");
            var s3 = DateTime.Parse("2023-06-04").ToString();
            s3.ShouldBe("2023/6/4 0:00:00");

            //newtonsoft 默认
            var n = Newtonsoft.Json.JsonConvert.SerializeObject(DateTime.Parse("2023-06-04 16:40:17"));
            n.ShouldBe("\"2023-06-04T16:40:17\"");
            var n3 = Newtonsoft.Json.JsonConvert.SerializeObject(DateTime.Parse("2023-06-04"));
            n3.ShouldBe("\"2023-06-04T00:00:00\"");

            //修饰 system.text.json 后
            var options = JsonHelper.GetDefaultJsonSerializerOptions();
后面还有 158 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。