NewLife/X

实体类Json序列化例程
大石头 编写于 2019-06-27 22:24:05
共计: 修改4个文件,增加43行、删除6行。
修改 +2 -2
修改 +4 -4
增加 +36 -0
修改 +1 -0
修改 +2 -2
diff --git a/NewLife.Core/Serialization/Json/IJsonHost.cs b/NewLife.Core/Serialization/Json/IJsonHost.cs
index 3439569..89ea4b8 100644
--- a/NewLife.Core/Serialization/Json/IJsonHost.cs
+++ b/NewLife.Core/Serialization/Json/IJsonHost.cs
@@ -52,8 +52,8 @@ namespace NewLife.Serialization
 
         /// <summary>写入对象,得到Json字符串</summary>
         /// <param name="value"></param>
-        /// <param name="indented">是否缩进。默认false</param>
-        /// <param name="nullValue">是否写控制。默认true</param>
+        /// <param name="indented">是否换行缩进。默认false</param>
+        /// <param name="nullValue">是否写空值。默认true</param>
         /// <param name="camelCase">是否驼峰命名。默认false</param>
         /// <returns></returns>
         public static String ToJson(this Object value, Boolean indented, Boolean nullValue, Boolean camelCase) => Default.Write(value, indented, nullValue, camelCase);
修改 +4 -4
diff --git a/Test/Program.cs b/Test/Program.cs
index 91b26fe..627eee7 100644
--- a/Test/Program.cs
+++ b/Test/Program.cs
@@ -56,8 +56,6 @@ namespace Test
 
         static void Test1()
         {
-            Role.Meta.Session.Dal.Db.ShowSQL = true;
-
             var role = new Role
             {
                 ID = 1,
@@ -66,9 +64,11 @@ namespace Test
                 Ex4 = "All"
             };
 
-            role.ResetDirty();
+            var js = role.ToJson(true, false, false);
+            Console.WriteLine(js);
 
-            role.Save();
+            var role2 = js.ToJsonEntity<Role>();
+            Console.WriteLine("{0} {1} {2}", role2.ID, role2.Name, role2.Ex4);
         }
 
         static void Test2()
增加 +36 -0
diff --git a/XUnitTest.Core/JsonTest.cs b/XUnitTest.Core/JsonTest.cs
new file mode 100644
index 0000000..e49f80c
--- /dev/null
+++ b/XUnitTest.Core/JsonTest.cs
@@ -0,0 +1,36 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using XCode.Membership;
+using Xunit;
+using NewLife.Serialization;
+
+namespace XUnitTest.Core
+{
+    public class JsonTest
+    {
+        [Fact(DisplayName = "基础测试")]
+        public void Test1()
+        {
+            var role = new Role
+            {
+                ID = 1,
+                Name = "管理员",
+                Enable = false,
+                Ex4 = "All"
+            };
+
+            var js = role.ToJson(true, false, false);
+            //Console.WriteLine(js);
+            Assert.True(js.StartsWith("{") && js.EndsWith("}"));
+
+            var role2 = js.ToJsonEntity<Role>();
+            //Console.WriteLine("{0} {1} {2}", role2.ID, role2.Name, role2.Ex4);
+
+            Assert.Equal(1, role2.ID);
+            Assert.Equal("管理员", role2.Name);
+            Assert.False(role2.Enable);
+            Assert.Equal("All", role2.Ex4);
+        }
+    }
+}
修改 +1 -0
diff --git a/XUnitTest.Core/XUnitTest.Core.csproj b/XUnitTest.Core/XUnitTest.Core.csproj
index e60ca67..c525e0c 100644
--- a/XUnitTest.Core/XUnitTest.Core.csproj
+++ b/XUnitTest.Core/XUnitTest.Core.csproj
@@ -14,6 +14,7 @@
 
   <ItemGroup>
     <ProjectReference Include="..\NewLife.Core\NewLife.Core.csproj" />
+    <ProjectReference Include="..\XCode\XCode.csproj" />
   </ItemGroup>
 
 </Project>