ok
e8b85f383b1e300eb2d2025ee55f31ed3fa535dd
5 files changed
src/Object2Json.Test/Object2Json.Test.csprojsrc/Object2Json.Test/Program.cssrc/Object2Json.Test/Test1.cssrc/Object2Json/ObjectJsonSerializer.cssrc/Object2Json/ObjectJsonSerializer.csproj
diff --git a/src/Object2Json.Test/Object2Json.Test.csproj b/src/Object2Json.Test/Object2Json.Test.csproj
index 2150e37..b9deeb0 100644
--- a/src/Object2Json.Test/Object2Json.Test.csproj
+++ b/src/Object2Json.Test/Object2Json.Test.csproj
@@ -7,4 +7,8 @@
<Nullable>enable</Nullable>
</PropertyGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\Object2Json\ObjectJsonSerializer.csproj" />
+ </ItemGroup>
+
</Project>
diff --git a/src/Object2Json.Test/Program.cs b/src/Object2Json.Test/Program.cs
index 8544ba7..0b1cd0f 100644
--- a/src/Object2Json.Test/Program.cs
+++ b/src/Object2Json.Test/Program.cs
@@ -1,5 +1,4 @@
-using System.Diagnostics;
using System.Text.Json;
namespace Object2Json.Test;
@@ -45,53 +44,6 @@ public class Tester
dict.Add("man", t1);
dict.Add("vrouw", t2);
- var COUNT = 10000;
-
- //var sw2 = Stopwatch.StartNew();
- //for (int i = 0; i < COUNT; i++)
- //{
- // var json2 = JsonSerializer.Serialize(dict);
- //}
- //Console.WriteLine(sw2.ElapsedMilliseconds + "mS");
-
- //var sw1 = Stopwatch.StartNew();
- //for (int i = 0; i < COUNT; i++)
- //{
- // var json = BetterSerializer.Serialize(dict);
- //}
- //Console.WriteLine(sw1.ElapsedMilliseconds + "mS");
-
- //var jsonA = JsonSerializer.Serialize(dict, new JsonSerializerOptions()
- //{
- // WriteIndented = true
- //});
-
- //for (int i = 0; i < 10; i++)
- //{
-
- // var jsonT = ObjectJsonSerializer.Serialize(dict, new JsonSerializerOptions()
- // {
- // WriteIndented = true
- // });
-
- // var dictcopyT = ObjectJsonSerializer.DeSerialize(jsonT);
- //}
- //// warm start ended
- //var swA = Stopwatch.StartNew();
- //for (int i = 0; i < COUNT; i++)
- //{
-
- // var jsonT = ObjectJsonSerializer.Serialize(dict, new JsonSerializerOptions()
- // {
- // WriteIndented = true
- // });
-
- // var dictcopyT = ObjectJsonSerializer.DeSerialize(jsonT);
- //}
- //Console.WriteLine($"ended {swA.ElapsedMilliseconds}mS");
- //return;
-
-
var json = ObjectJsonSerializer.Serialize(dict, new JsonSerializerOptions()
{
WriteIndented = true
@@ -103,6 +55,7 @@ public class Tester
{
WriteIndented = true
});
+ //File.WriteAllText("test2.json", jsoncopy);
if (json == jsoncopy)
Console.WriteLine("same");
diff --git a/src/Object2Json.Test/Test1.cs b/src/Object2Json.Test/Test1.cs
new file mode 100644
index 0000000..2933968
--- /dev/null
+++ b/src/Object2Json.Test/Test1.cs
@@ -0,0 +1,49 @@
+
+namespace Object2Json.Test;
+
+public enum TypeEnum
+{
+ None,
+ Male,
+ Female
+}
+
+public class Test1
+{
+ public TypeEnum Gender { get; set; }
+ public string? ThisIsNull { get; set; } = null;
+ public DateTime Changed { get; set; } = DateTime.Now;
+ public string? Name { get; set; } = "alphons";
+
+ public Guid MyGuid { get; set; } = Guid.NewGuid();
+
+ // can not Set property
+ public DateTimeOffset DateTimeOffset1 { get; set; } = new DateTimeOffset(DateTime.Now);
+
+ public int Age { get; set; } = 51;
+
+ public List<string> Tags { get; set; } = ["tag 1", "tag 2"];
+
+ public Test1? Partner { get; set; }
+
+ public ushort Shorter { get; set; } = 123;
+
+ public bool Enabled { get; set; } = true;
+
+ public Dictionary<string, decimal> Dict { get; set; } = new Dictionary<string, decimal>() { { "k1", 56.78M }, { "k2", 32.10M } };
+
+ public Dictionary<Guid, bool> Dict2 { get; set; } = new Dictionary<Guid, bool>() { { Guid.NewGuid() , true }, { Guid.NewGuid() , false } };
+
+ public int[]? Buf1 { get; set; }
+
+ public byte[] Buf2 { get; set; } = new byte[20];
+
+ public List<double> Doubles { get; set; } = [ 0.1234, 1.2123, 3.4123, 5.6123];
+
+ public decimal Dec1 { get; set; } = 21.4567M;
+
+ public List<List<double>> Doubles2 { get; set; } = [];
+
+ public char CreditDebit { get; set; } = 'C';
+
+}
diff --git a/src/Object2Json/ObjectJsonSerializer.cs b/src/Object2Json/ObjectJsonSerializer.cs
index 555e7df..2094985 100644
--- a/src/Object2Json/ObjectJsonSerializer.cs
+++ b/src/Object2Json/ObjectJsonSerializer.cs
@@ -121,7 +121,7 @@ public class ObjectJsonSerializer
case IDictionary dict:
if (level > 0)
sb.Append($"{NL}");
- sb.Append($"{S}{{{NL}{SS}\"{PropClass}\": \"{t.FullName}\",{NL}");
+ sb.Append($"{S}{{{NL}{SS}\"{PropClass}\": \"{t.AssemblyQualifiedName}\",{NL}");
var dicti = 0;
foreach (var key in dict.Keys)
{
@@ -137,7 +137,7 @@ public class ObjectJsonSerializer
default:
if (level > 0)
sb.Append($"{NL}");
- sb.Append($"{S}{{{NL}{SS}\"{PropClass}\": \"{t.FullName}\",{NL}");
+ sb.Append($"{S}{{{NL}{SS}\"{PropClass}\": \"{t.AssemblyQualifiedName}\",{NL}");
var fis = t.GetProperties(BindingFlags.Instance | BindingFlags.Public);
for (int i = 0; i < fis.Length; i++)
{
@@ -184,7 +184,7 @@ public class ObjectJsonSerializer
{
var t = Type.GetType(className!.ToString());
if (t == null)
- return new object();
+ throw new Exception($"can not find type {className}");
var arguments = t.GetGenericArguments();
diff --git a/src/Object2Json/ObjectJsonSerializer.csproj b/src/Object2Json/ObjectJsonSerializer.csproj
index af58e58..e127bce 100644
--- a/src/Object2Json/ObjectJsonSerializer.csproj
+++ b/src/Object2Json/ObjectJsonSerializer.csproj
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <OutputType>Dll</OutputType>
+ <OutputType>library</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>