Pages

Sunday, 19 January 2014

Convert datareader to json in .net

public static string DataReaderToJson(SqlDataReader dr, string Object, string Dtls)
    {
        string json = string.Empty; ;
        string SucessCode = "200";
        StringBuilder sb = new StringBuilder();
        sb.Append("{");
        sb.Append("\"Status\":\"" + SucessCode + "\",");
        sb.Append("\"Message\":\"Sucess\",");
        sb.Append("\"" + Object + "\":");
        sb.Append("[");
        sb.Append("{");
        if (dr.HasRows)
        {
            int rowCount = 0;
            sb.Append("\"" + Dtls + "\":");
            sb.Append("[");
            while (dr.Read())
            {
                sb.Append("{");
                for (int i = 0; i < dr.FieldCount; i++)
                {
                    sb.Append("\"" + EsHelper.EsGetValidString(dr.GetName(i)).Replace("\"", "\\\"") + "\":");
                    sb.Append("\"" + EsHelper.EsGetValidString(dr[i]).Replace("\"", "\\\"") + "\"");
                    sb.Append(i == dr.FieldCount - 1 ? "" : ",");

                }

                sb.Append("},");

                rowCount++;

            }
            if (rowCount > 0)
            {
                int index = EsHelper.EsGetValidString(sb).LastIndexOf(",");
                sb.Remove(index, 1);
            }

            sb.Append("]},");
        }
        dr.NextResult();
        sb.Append("{");
        if (dr.HasRows)
        {
            int rowCount = 0;
            sb.Append("\"" + Dtls + "\":");
            sb.Append("[");
            while (dr.Read())
            {
                sb.Append("{");
                for (int i = 0; i < dr.FieldCount; i++)
                {
                    sb.Append("\"" + EsHelper.EsGetValidString(dr.GetName(i)).Replace("\"", "\\\"") + "\":");
                    sb.Append("\"" + EsHelper.EsGetValidString(dr[i]).Replace("\"", "\\\"") + "\"");
                    sb.Append(i == dr.FieldCount - 1 ? "" : ",");
                }

                sb.Append("},");
                rowCount++;
            }
            if (rowCount > 0)
            {
                int index = EsHelper.EsGetValidString(sb).LastIndexOf(",");
                sb.Remove(index, 1);
            }
            sb.Append("]}");
        }
        sb.Append("]}");
        return json = JsonConvert.SerializeObject(sb);
    }




No comments:

Post a Comment