Fix error when deserializing empty array in DataTable (#1786)
This commit is contained in:
@@ -50,6 +50,23 @@ namespace Newtonsoft.Json.Tests.Converters
|
||||
{
|
||||
public class DataTableConverterTests : TestFixtureBase
|
||||
{
|
||||
[Test]
|
||||
public void DeserializeEmptyNestedArray()
|
||||
{
|
||||
var jsonString2 = @"[{""col1"": []}]";
|
||||
|
||||
DataTable dt = JsonConvert.DeserializeObject<DataTable>(jsonString2);
|
||||
|
||||
Assert.AreEqual(1, dt.Columns.Count);
|
||||
Assert.AreEqual(typeof(string[]), dt.Columns["col1"].DataType);
|
||||
|
||||
Assert.AreEqual(1, dt.Rows.Count);
|
||||
Assert.IsNotNull(dt.Rows[0]["col1"]);
|
||||
|
||||
object[] value = (object[])dt.Rows[0]["col1"];
|
||||
Assert.AreEqual(0, value.Length);
|
||||
}
|
||||
|
||||
#if !(NET20 || NET35)
|
||||
[Test]
|
||||
public void SerializeNullValues()
|
||||
|
||||
@@ -221,6 +221,7 @@ namespace Newtonsoft.Json.Converters
|
||||
return reader.ValueType;
|
||||
case JsonToken.Null:
|
||||
case JsonToken.Undefined:
|
||||
case JsonToken.EndArray:
|
||||
return typeof(string);
|
||||
case JsonToken.StartArray:
|
||||
reader.ReadAndAssert();
|
||||
|
||||
Reference in New Issue
Block a user