public static void WriteValue(System.Text.StringBuilder sb, object val) { if (val == null || val == System.DBNull.Value) { sb.Append("\"null\""); } else if (val is string || val is System.Guid) { JSONConverter.WriteString(sb, val.ToString()); } else if (val is bool) { JSONConverter.WriteString(sb, val.ToString()); } else if (val is double || val is float || val is long || val is int || val is short || val is byte || val is decimal) { JSONConverter.WriteString(sb, val.ToString()); } else if (val.GetType().IsEnum) { sb.Append("\"" + (int)val + "\""); } else if (val is DateTime) { JSONConverter.WriteString(sb, ((DateTime)val).ToString("yyyy-MM-dd HH:mm:ss", new System.Globalization.CultureInfo("en-US", false).DateTimeFormat)); } else if (val is DataTable) { JSONConverter.WriteDataTable(sb, val as DataTable); } else if (val is DataRow) { JSONConverter.WriteDataRow(sb, val as DataRow); } else if (val is System.Collections.Hashtable) { JSONConverter.WriteHashtable(sb, val as System.Collections.Hashtable); } else if (val is System.Collections.IEnumerable) { JSONConverter.WriteEnumerable(sb, val as System.Collections.IEnumerable); } else { JSONConverter.WriteObject(sb, val); } }