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 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
