Always try to write reflected object.
This commit is contained in:
@@ -141,7 +141,7 @@ namespace VAR.Json
|
|||||||
textWriter.Write('"');
|
textWriter.Write('"');
|
||||||
}
|
}
|
||||||
|
|
||||||
private void WriteValue(TextWriter textWriter, object obj, List<object> parentLevels, bool useReflection)
|
private void WriteValue(TextWriter textWriter, object obj, List<object> parentLevels)
|
||||||
{
|
{
|
||||||
if (obj == null || obj is DBNull)
|
if (obj == null || obj is DBNull)
|
||||||
{
|
{
|
||||||
@@ -187,17 +187,10 @@ namespace VAR.Json
|
|||||||
WriteList(textWriter, obj, parentLevels);
|
WriteList(textWriter, obj, parentLevels);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
|
||||||
if (useReflection)
|
|
||||||
{
|
{
|
||||||
// Reflected object
|
// Reflected object
|
||||||
WriteReflectedObject(textWriter, obj, parentLevels);
|
WriteReflectedObject(textWriter, obj, parentLevels);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
WriteString(textWriter, Convert.ToString(obj));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void WriteList(TextWriter textWriter, object obj, List<object> parentLevels)
|
private void WriteList(TextWriter textWriter, object obj, List<object> parentLevels)
|
||||||
@@ -242,7 +235,7 @@ namespace VAR.Json
|
|||||||
}
|
}
|
||||||
first = false;
|
first = false;
|
||||||
parentLevels.Add(obj);
|
parentLevels.Add(obj);
|
||||||
WriteValue(textWriter, childObj, parentLevels, true);
|
WriteValue(textWriter, childObj, parentLevels);
|
||||||
parentLevels.Remove(obj);
|
parentLevels.Remove(obj);
|
||||||
}
|
}
|
||||||
if (!isLeaf || n > _config.IndentThresold)
|
if (!isLeaf || n > _config.IndentThresold)
|
||||||
@@ -297,7 +290,7 @@ namespace VAR.Json
|
|||||||
WriteString(textWriter, Convert.ToString(key));
|
WriteString(textWriter, Convert.ToString(key));
|
||||||
textWriter.Write(": ");
|
textWriter.Write(": ");
|
||||||
parentLevels.Add(obj);
|
parentLevels.Add(obj);
|
||||||
WriteValue(textWriter, value, parentLevels, true);
|
WriteValue(textWriter, value, parentLevels);
|
||||||
parentLevels.Remove(obj);
|
parentLevels.Remove(obj);
|
||||||
}
|
}
|
||||||
if (!isLeaf || n > _config.IndentThresold)
|
if (!isLeaf || n > _config.IndentThresold)
|
||||||
@@ -369,11 +362,11 @@ namespace VAR.Json
|
|||||||
parentLevels.Add(obj);
|
parentLevels.Add(obj);
|
||||||
if (value != obj && parentLevels.Contains(value) == false)
|
if (value != obj && parentLevels.Contains(value) == false)
|
||||||
{
|
{
|
||||||
WriteValue(textWriter, value, parentLevels, false);
|
WriteValue(textWriter, value, parentLevels);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
WriteValue(textWriter, null, parentLevels, false);
|
WriteValue(textWriter, null, parentLevels);
|
||||||
}
|
}
|
||||||
parentLevels.Remove(obj);
|
parentLevels.Remove(obj);
|
||||||
}
|
}
|
||||||
@@ -394,14 +387,14 @@ namespace VAR.Json
|
|||||||
{
|
{
|
||||||
textWriter = new StringWriter();
|
textWriter = new StringWriter();
|
||||||
}
|
}
|
||||||
WriteValue(textWriter, obj, new List<object>(), true);
|
WriteValue(textWriter, obj, new List<object>());
|
||||||
return textWriter;
|
return textWriter;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Write(object obj)
|
public string Write(object obj)
|
||||||
{
|
{
|
||||||
StringWriter textWriter = new StringWriter();
|
StringWriter textWriter = new StringWriter();
|
||||||
WriteValue(textWriter, obj, new List<object>(), true);
|
WriteValue(textWriter, obj, new List<object>());
|
||||||
return textWriter.ToString();
|
return textWriter.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user