public static void WriteErrorJson(this HttpResponse resp, Exception e, int httpCode = 200) { var outer = new LyuJson { error = e.Message }; resp.StatusCode = httpCode; resp.Write(DataConverter.Serialize(outer)); }
public static void WriteJson(this HttpResponse resp, object val) { resp.ContentType = "application/json"; if (val == null) { resp.Write("{\"data\":null}"); } else { Type type = val.GetType(); switch (Type.GetTypeCode(type)) { case TypeCode.String: resp.Write(val); break; case TypeCode.Int16: case TypeCode.Int32: resp.Write(((int)val).Send()); break; case TypeCode.Int64: resp.Write(((long)val).Send()); break; case TypeCode.Boolean: resp.Write(((bool)val).Send()); break; case TypeCode.Empty: case TypeCode.DBNull: resp.Write("{\"data\":null}"); break; default: if (type == typeof(DataTable)) { resp.Write(((DataTable)val).Send()); } else if (type == typeof(DataSet)) { resp.Write(((DataSet)val).Send()); } else if (type == typeof(DataPage)) { resp.Write(((DataPage)val).Send()); } else if (type == typeof(LyuJson)) { resp.Write(DataConverter.Serialize(val)); } else { //response.Write(obj.ToString()); var outer = new LyuJson { data = val }; resp.Write(DataConverter.Serialize(outer)); } break; } } }