From 1cb380895ff90d1a39dcdd240e3eb1a54604d4cd Mon Sep 17 00:00:00 2001 From: milimoe Date: Thu, 3 Aug 2023 23:35:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8JsonTool?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Main.cs | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/Main.cs b/Main.cs index 99efd75..96b71aa 100644 --- a/Main.cs +++ b/Main.cs @@ -24,12 +24,11 @@ table.Rows.Add(2, "Jane", 25); table.Rows.Add(3, "Bob", 40); ds.Tables.Add(table); -System.Text.Json.JsonSerializerOptions options = new() -{ - WriteIndented = true, - ReferenceHandler = System.Text.Json.Serialization.ReferenceHandler.IgnoreCycles, - Converters = { new DateTimeConverter(), new DataTableConverter(), new DataSetConverter(), new UserConverter(), new RoomConverter(), new PersonConverter(), new AddressConverter() } -}; +JsonTool JsonTool = new(); +JsonTool.AddConverter(new UserConverter()); +JsonTool.AddConverter(new RoomConverter()); +JsonTool.AddConverter(new PersonConverter()); +JsonTool.AddConverter(new AddressConverter()); Room r = Factory.GetRoom(1294367, "w5rtvh8".ToUpper(), DateTime.Now, Factory.GetUser(), Milimoe.FunGame.Core.Library.Constant.RoomType.Mix, Milimoe.FunGame.Core.Library.Constant.RoomState.Created); User u = Factory.GetUser(1, "LUOLI", DateTime.Now, DateTime.Now, "LUOLI@66.COM", "QWQAQW"); @@ -41,12 +40,12 @@ Hashtable hashtable = new() { "user", u } }; -string json = NetworkUtility.JsonSerialize(hashtable, options); +string json = JsonTool.GetString(hashtable); -Hashtable hashtable2 = NetworkUtility.JsonDeserialize(json, options) ?? new(); +Hashtable hashtable2 = JsonTool.GetObject(json) ?? new(); -User u2 = NetworkUtility.JsonDeserializeFromHashtable(hashtable2, "user") ?? Factory.GetUser(); -Room r2 = NetworkUtility.JsonDeserializeFromHashtable(hashtable2, "room") ?? Factory.GetRoom(); +User u2 = JsonTool.GetObject(hashtable2, "user") ?? Factory.GetUser(); +Room r2 = JsonTool.GetObject(hashtable2, "room") ?? Factory.GetRoom(); Console.WriteLine(u2.Username + " 进入了 " + r2.Roomid + " 房间"); @@ -61,8 +60,8 @@ Person p = new() } }; -json = NetworkUtility.JsonSerialize(p, options); +json = JsonTool.GetString(p); -Person p2 = NetworkUtility.JsonDeserialize(json, options) ?? new(); +Person p2 = JsonTool.GetObject(json) ?? new(); Console.WriteLine("My name is " + p2.Name + ", I am " + p2.Age + "-year-old. I live at " + p2.Address.State + " " + p2.Address.City); \ No newline at end of file