diff --git a/TupleStudy/TupleStudy.csproj b/TupleStudy/TupleStudy.csproj
index 9f5c4f4..afada82 100644
--- a/TupleStudy/TupleStudy.csproj
+++ b/TupleStudy/TupleStudy.csproj
@@ -4,4 +4,8 @@
     <TargetFramework>netstandard2.0</TargetFramework>
   </PropertyGroup>
 
+  <ItemGroup>
+    <PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
+  </ItemGroup>
+
 </Project>
diff --git a/TupleStudy/ValueTupleStudy.cs b/TupleStudy/ValueTupleStudy.cs
index b2fddb3..21dbf59 100644
--- a/TupleStudy/ValueTupleStudy.cs
+++ b/TupleStudy/ValueTupleStudy.cs
@@ -2,6 +2,8 @@
 using System.Collections.Generic;
 using System.Text;
 
+using Newtonsoft.Json;
+
 namespace TupleStudy
 {
     /// <summary>
@@ -39,7 +41,7 @@ namespace TupleStudy
         /// <summary>
         /// 创建2元素的值元组
         /// </summary>
-        public ValueTuple<T1,T2> CreateValueTuple<T1,T2>(T1 value1, T2 value2)
+        public ValueTuple<T1, T2> CreateValueTuple<T1, T2>(T1 value1, T2 value2)
         {
             var tuple = new ValueTuple<T1, T2>(value1, value2);
 
@@ -89,7 +91,7 @@ namespace TupleStudy
         /// <summary>
         /// 创建7元素的值元组
         /// </summary>
-        public ValueTuple<T1, T2, T3, T4, T5, T6, T7> CreateValueTuple<T1, T2, T3, T4,T5,T6,T7>(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7)
+        public ValueTuple<T1, T2, T3, T4, T5, T6, T7> CreateValueTuple<T1, T2, T3, T4, T5, T6, T7>(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7)
         {
             var tuple = new ValueTuple<T1, T2, T3, T4, T5, T6, T7>(value1, value2, value3, value4, value5, value6, value7);
 
@@ -184,7 +186,7 @@ namespace TupleStudy
         /// <summary>
         /// 创建8元素的值元组
         /// </summary>
-        public (T1, T2, T3, T4, T5, T6, T7, TRest) GetValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, TRest item8) where TRest:struct
+        public (T1, T2, T3, T4, T5, T6, T7, TRest) GetValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, TRest item8) where TRest : struct
         {
             var tuple = ValueTuple.Create(item1, item2, item3, item4, item5, item6, item7, item8);
             return tuple;
@@ -204,7 +206,7 @@ namespace TupleStudy
             //回为函数返回值已经重命名,创建时再次命名已没有意义
             //return (userId: 1, userName: "wanggaofeng", userAge: 18);
 
-            return (1, "王高峰",18);
+            return (1, "王高峰", 18);
         }
         #endregion
 
@@ -254,5 +256,31 @@ namespace TupleStudy
             }
         }
         #endregion
+
+        #region 序列化问题
+        public string GetValueTupleJson()
+        {
+            var student = (userId: 1, userName: "wanggaofeng", userAge: 18);
+            var json = JsonConvert.SerializeObject(student);
+            return json;
+        }
+
+        /// <summary>
+        /// 解决方法:转换成匿名类
+        /// 不太优雅的方案,目前只能如此。
+        /// </summary>
+        public string GetValueTupleJsonSolve()
+        {
+            var student = (userId: 1, userName: "wanggaofeng", userAge: 18);
+            var anonymous = new
+            {
+                userId = student.userId,
+                userName = student.userName,
+                userAge = student.userAge,
+            };
+            var json = JsonConvert.SerializeObject(anonymous);
+            return json;
+        }
+        #endregion
     }
 }
diff --git a/TupleStudyTest/TupleStudyTest.csproj b/TupleStudyTest/TupleStudyTest.csproj
index 453b610..9426566 100644
--- a/TupleStudyTest/TupleStudyTest.csproj
+++ b/TupleStudyTest/TupleStudyTest.csproj
@@ -34,6 +34,9 @@
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
   <ItemGroup>
+    <Reference Include="Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
+      <HintPath>..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
+    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />
     <Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
diff --git a/TupleStudyTest/packages.config b/TupleStudyTest/packages.config
index f98995b..a32d6c2 100644
--- a/TupleStudyTest/packages.config
+++ b/TupleStudyTest/packages.config
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <packages>
+  <package id="Newtonsoft.Json" version="11.0.2" targetFramework="net461" />
   <package id="System.ValueTuple" version="4.5.0" targetFramework="net461" />
   <package id="xunit" version="2.2.0" targetFramework="net461" />
   <package id="xunit.abstractions" version="2.0.1" targetFramework="net461" />
diff --git a/ValueTupleStudyTest/ValueTupleStudyTest.cs b/ValueTupleStudyTest/ValueTupleStudyTest.cs
index 582a541..3576f8c 100644
--- a/ValueTupleStudyTest/ValueTupleStudyTest.cs
+++ b/ValueTupleStudyTest/ValueTupleStudyTest.cs
@@ -204,6 +204,12 @@ namespace ValueTupleStudyTest
             Assert.Equal(1, id);
             Assert.Equal("wanggaofeng", name);
             Assert.Equal(18, age);
+
+            //声明为变量:类型 + 变量
+            (int myId, string myName, int myAge) student = ValueTuple.Create(1, "wanggaofeng", 18);
+            Assert.Equal(1, student.myId);
+            Assert.Equal("wanggaofeng", student.myName);
+            Assert.Equal(18, student.myAge);
         }
 
         /// <summary>
@@ -312,13 +318,34 @@ namespace ValueTupleStudyTest
         }
 
         /// <summary>
-        /// Git-Flow 补丁测试
+        /// 注意:序列化后,自定义名字无效,仍然使用Item1 等
         /// </summary>
         [Fact]
-        public void Hotfix_Test()
+        public void ValueTupleToJson_Test()
         {
-            Assert.True(1 == 1);
+            var json = valueTupleStudy.GetValueTupleJson();
+
+            Assert.Contains("Item1", json);
+            Assert.Contains("Item2", json);
+            Assert.Contains("Item3", json);
+
+            Assert.DoesNotContain("userId", json);
+            Assert.DoesNotContain("userName", json);
+            Assert.DoesNotContain("userAge", json);
+        }
+
+        [Fact]
+        public void ValueTupleToJson_Solve_Test()
+        {
+            var json = valueTupleStudy.GetValueTupleJsonSolve();
+
+            Assert.DoesNotContain("Item1", json);
+            Assert.DoesNotContain("Item2", json);
+            Assert.DoesNotContain("Item3", json);
+
+            Assert.Contains("userId", json);
+            Assert.Contains("userName", json);
+            Assert.Contains("userAge", json);
         }
-        //发布v1.0
     }
 }
diff --git a/ValueTupleStudyTest/ValueTupleStudyTest.csproj b/ValueTupleStudyTest/ValueTupleStudyTest.csproj
index dee134a..049070e 100644
--- a/ValueTupleStudyTest/ValueTupleStudyTest.csproj
+++ b/ValueTupleStudyTest/ValueTupleStudyTest.csproj
@@ -34,6 +34,9 @@
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
   <ItemGroup>
+    <Reference Include="Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
+      <HintPath>..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
+    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />
     <Reference Include="System.Xml.Linq" />
diff --git a/ValueTupleStudyTest/packages.config b/ValueTupleStudyTest/packages.config
index 5d9b8dc..3863694 100644
--- a/ValueTupleStudyTest/packages.config
+++ b/ValueTupleStudyTest/packages.config
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <packages>
+  <package id="Newtonsoft.Json" version="11.0.2" targetFramework="net47" />
   <package id="xunit" version="2.4.0" targetFramework="net47" />
   <package id="xunit.abstractions" version="2.0.2" targetFramework="net47" />
   <package id="xunit.analyzers" version="0.10.0" targetFramework="net47" />