-PR fixes
This commit is contained in:
@@ -57,4 +57,4 @@ using System.Runtime.InteropServices;
|
|||||||
// You can specify all the values or you can default the Build and Revision Numbers
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
[assembly: AssemblyVersion("7.0.0.0")]
|
[assembly: AssemblyVersion("7.0.0.0")]
|
||||||
[assembly: AssemblyFileVersion("7.0.1.18322")]
|
[assembly: AssemblyFileVersion("7.0.1.18329")]
|
||||||
|
|||||||
@@ -455,10 +455,11 @@ namespace Newtonsoft.Json.Tests.Converters
|
|||||||
Assert.AreEqual("432", dt[0].CustomerID);
|
Assert.AreEqual("432", dt[0].CustomerID);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
#if !(NET20 || PORTABLE || PORTABLE40)
|
||||||
public void DeserializedTypedDataTableWithConverter()
|
[Test]
|
||||||
{
|
public void DeserializedTypedDataTableWithConverter()
|
||||||
string json = @"{
|
{
|
||||||
|
string json = @"{
|
||||||
""TestTable"": [
|
""TestTable"": [
|
||||||
{
|
{
|
||||||
""DateTimeValue"": ""2015-11-28T00:00:00""
|
""DateTimeValue"": ""2015-11-28T00:00:00""
|
||||||
@@ -469,36 +470,41 @@ namespace Newtonsoft.Json.Tests.Converters
|
|||||||
]
|
]
|
||||||
}";
|
}";
|
||||||
|
|
||||||
var ds = JsonConvert.DeserializeObject<SqlTypesDataSet>(json, new SqlDateTimeConverter());
|
SqlTypesDataSet ds = JsonConvert.DeserializeObject<SqlTypesDataSet>(json, new SqlDateTimeConverter());
|
||||||
|
|
||||||
Assert.AreEqual(new System.Data.SqlTypes.SqlDateTime(2015, 11, 28), ds.TestTable[0].DateTimeValue);
|
Assert.AreEqual(new System.Data.SqlTypes.SqlDateTime(2015, 11, 28), ds.TestTable[0].DateTimeValue);
|
||||||
Assert.AreEqual(System.Data.SqlTypes.SqlDateTime.Null, ds.TestTable[1].DateTimeValue);
|
Assert.AreEqual(System.Data.SqlTypes.SqlDateTime.Null, ds.TestTable[1].DateTimeValue);
|
||||||
}
|
|
||||||
|
string json2 = JsonConvert.SerializeObject(ds, Formatting.Indented, new SqlDateTimeConverter());
|
||||||
|
|
||||||
internal class SqlDateTimeConverter : JsonConverter
|
Assert.AreEqual(json, json2);
|
||||||
{
|
Console.WriteLine(json2);
|
||||||
public override bool CanConvert(Type objectType)
|
}
|
||||||
{
|
|
||||||
return typeof(System.Data.SqlTypes.SqlDateTime).IsAssignableFrom(objectType);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
|
internal class SqlDateTimeConverter : JsonConverter
|
||||||
{
|
{
|
||||||
if (reader.Value == null || reader.Value == DBNull.Value)
|
public override bool CanConvert(Type objectType)
|
||||||
return System.Data.SqlTypes.SqlDateTime.Null;
|
{
|
||||||
else
|
return typeof(System.Data.SqlTypes.SqlDateTime).IsAssignableFrom(objectType);
|
||||||
return new System.Data.SqlTypes.SqlDateTime((DateTime)serializer.Deserialize(reader));
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
|
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
|
||||||
{
|
{
|
||||||
if (((System.Data.SqlTypes.SqlDateTime)value).IsNull)
|
if (reader.Value == null || reader.Value == DBNull.Value)
|
||||||
writer.WriteNull();
|
return System.Data.SqlTypes.SqlDateTime.Null;
|
||||||
else
|
else
|
||||||
writer.WriteValue(((System.Data.SqlTypes.SqlDateTime)value).Value);
|
return new System.Data.SqlTypes.SqlDateTime((DateTime)serializer.Deserialize(reader));
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
|
||||||
|
{
|
||||||
|
if (((System.Data.SqlTypes.SqlDateTime)value).IsNull)
|
||||||
|
writer.WriteNull();
|
||||||
|
else
|
||||||
|
writer.WriteValue(((System.Data.SqlTypes.SqlDateTime)value).Value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -79,6 +79,7 @@
|
|||||||
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Data" />
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
<Reference Include="System.Data.Entity">
|
<Reference Include="System.Data.Entity">
|
||||||
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
||||||
</Reference>
|
</Reference>
|
||||||
@@ -241,6 +242,11 @@
|
|||||||
<Compile Include="TestObjects\SearchResult.cs" />
|
<Compile Include="TestObjects\SearchResult.cs" />
|
||||||
<Compile Include="TestObjects\SelectListItem.cs" />
|
<Compile Include="TestObjects\SelectListItem.cs" />
|
||||||
<Compile Include="TestObjects\Shape.cs" />
|
<Compile Include="TestObjects\Shape.cs" />
|
||||||
|
<Compile Include="TestObjects\SqlTypesDataSet.Designer.cs">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DesignTime>True</DesignTime>
|
||||||
|
<DependentUpon>SqlTypesDataSet.xsd</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="TestObjects\StructTest.cs" />
|
<Compile Include="TestObjects\StructTest.cs" />
|
||||||
<Compile Include="TestObjects\TestComponent.cs" />
|
<Compile Include="TestObjects\TestComponent.cs" />
|
||||||
<Compile Include="TestObjects\TestComponentSimple.cs" />
|
<Compile Include="TestObjects\TestComponentSimple.cs" />
|
||||||
@@ -355,6 +361,17 @@
|
|||||||
<Content Include="SpaceShipV2.bson">
|
<Content Include="SpaceShipV2.bson">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
<None Include="TestObjects\SqlTypesDataSet.xsc">
|
||||||
|
<DependentUpon>SqlTypesDataSet.xsd</DependentUpon>
|
||||||
|
</None>
|
||||||
|
<None Include="TestObjects\SqlTypesDataSet.xsd">
|
||||||
|
<Generator>MSDataSetGenerator</Generator>
|
||||||
|
<LastGenOutput>SqlTypesDataSet.Designer.cs</LastGenOutput>
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</None>
|
||||||
|
<None Include="TestObjects\SqlTypesDataSet.xss">
|
||||||
|
<DependentUpon>SqlTypesDataSet.xsd</DependentUpon>
|
||||||
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Service Include="{3259AA49-8AA1-44D3-9025-A0B520596A8C}" />
|
<Service Include="{3259AA49-8AA1-44D3-9025-A0B520596A8C}" />
|
||||||
|
|||||||
@@ -85,6 +85,7 @@
|
|||||||
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Data" />
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
<Reference Include="System.Data.Entity">
|
<Reference Include="System.Data.Entity">
|
||||||
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
||||||
</Reference>
|
</Reference>
|
||||||
@@ -363,6 +364,11 @@
|
|||||||
<Compile Include="TestObjects\SearchResult.cs" />
|
<Compile Include="TestObjects\SearchResult.cs" />
|
||||||
<Compile Include="TestObjects\SelectListItem.cs" />
|
<Compile Include="TestObjects\SelectListItem.cs" />
|
||||||
<Compile Include="TestObjects\Shape.cs" />
|
<Compile Include="TestObjects\Shape.cs" />
|
||||||
|
<Compile Include="TestObjects\SqlTypesDataSet.Designer.cs">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DesignTime>True</DesignTime>
|
||||||
|
<DependentUpon>SqlTypesDataSet.xsd</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="TestObjects\StructTest.cs" />
|
<Compile Include="TestObjects\StructTest.cs" />
|
||||||
<Compile Include="TestObjects\TestComponent.cs" />
|
<Compile Include="TestObjects\TestComponent.cs" />
|
||||||
<Compile Include="TestObjects\TestComponentSimple.cs" />
|
<Compile Include="TestObjects\TestComponentSimple.cs" />
|
||||||
@@ -540,6 +546,17 @@
|
|||||||
<Content Include="SpaceShipV2.bson">
|
<Content Include="SpaceShipV2.bson">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
<None Include="TestObjects\SqlTypesDataSet.xsc">
|
||||||
|
<DependentUpon>SqlTypesDataSet.xsd</DependentUpon>
|
||||||
|
</None>
|
||||||
|
<None Include="TestObjects\SqlTypesDataSet.xsd">
|
||||||
|
<Generator>MSDataSetGenerator</Generator>
|
||||||
|
<LastGenOutput>SqlTypesDataSet.Designer.cs</LastGenOutput>
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</None>
|
||||||
|
<None Include="TestObjects\SqlTypesDataSet.xss">
|
||||||
|
<DependentUpon>SqlTypesDataSet.xsd</DependentUpon>
|
||||||
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Service Include="{3259AA49-8AA1-44D3-9025-A0B520596A8C}" />
|
<Service Include="{3259AA49-8AA1-44D3-9025-A0B520596A8C}" />
|
||||||
|
|||||||
@@ -76,4 +76,4 @@ using System.Security;
|
|||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
|
|
||||||
[assembly: AssemblyVersion("7.0.0.0")]
|
[assembly: AssemblyVersion("7.0.0.0")]
|
||||||
[assembly: AssemblyFileVersion("7.0.1.18322")]
|
[assembly: AssemblyFileVersion("7.0.1.18329")]
|
||||||
|
|||||||
@@ -56,11 +56,13 @@ namespace Newtonsoft.Json.Converters
|
|||||||
writer.WriteStartObject();
|
writer.WriteStartObject();
|
||||||
foreach (DataColumn column in row.Table.Columns)
|
foreach (DataColumn column in row.Table.Columns)
|
||||||
{
|
{
|
||||||
if (serializer.NullValueHandling == NullValueHandling.Ignore && (row[column] == null || row[column] == DBNull.Value))
|
object columnValue = row[column];
|
||||||
|
|
||||||
|
if (serializer.NullValueHandling == NullValueHandling.Ignore && (columnValue == null || columnValue == DBNull.Value))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
writer.WritePropertyName((resolver != null) ? resolver.GetResolvedPropertyName(column.ColumnName) : column.ColumnName);
|
writer.WritePropertyName((resolver != null) ? resolver.GetResolvedPropertyName(column.ColumnName) : column.ColumnName);
|
||||||
serializer.Serialize(writer, row[column]);
|
serializer.Serialize(writer, columnValue);
|
||||||
}
|
}
|
||||||
writer.WriteEndObject();
|
writer.WriteEndObject();
|
||||||
}
|
}
|
||||||
@@ -165,7 +167,7 @@ namespace Newtonsoft.Json.Converters
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
dr[columnName] = reader.Value != null ? serializer.Deserialize(reader, column.DataType) : DBNull.Value;
|
dr[columnName] = (reader.Value != null) ? serializer.Deserialize(reader, column.DataType) : DBNull.Value;
|
||||||
}
|
}
|
||||||
|
|
||||||
CheckedRead(reader);
|
CheckedRead(reader);
|
||||||
@@ -222,5 +224,4 @@ namespace Newtonsoft.Json.Converters
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -92,5 +92,5 @@ using System.Security;
|
|||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
|
|
||||||
[assembly: AssemblyVersion("7.0.0.0")]
|
[assembly: AssemblyVersion("7.0.0.0")]
|
||||||
[assembly: AssemblyFileVersion("7.0.1.18322")]
|
[assembly: AssemblyFileVersion("7.0.1.18329")]
|
||||||
[assembly: CLSCompliant(true)]
|
[assembly: CLSCompliant(true)]
|
||||||
|
|||||||
Reference in New Issue
Block a user