private void ConstructField(FieldInfo fieldInfo)
{
string valueStr = null;
if (fieldInfo.FieldType.IsArray)
{
var arrayBuilder = new StringBuilder();
arrayBuilder.Append("[");
var arr = fieldInfo.GetValue(Obj) as Array;
foreach (var element in arr)
{
arrayBuilder.Append(string.Format("{0}, ", ConstructValue(element)));
}
arrayBuilder.Remove(arrayBuilder.Length - 2, 2);
arrayBuilder.Append("]");
valueStr = arrayBuilder.ToString();
}
else
{
valueStr = ConstructValue(fieldInfo.GetValue(Obj));
}
if (valueStr == null)
{
throw new Exception("Unsupported data type");
}
builder.Append(string.Format("\"{0}\": {1},\n", fieldInfo.Name, valueStr));
}