예제 #1
0
        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));
        }
예제 #2
0
        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;
                }
            }
        }