コード例 #1
0
        /// <summary>
        /// Dictionary转换为Json(多对象) [{"key":"dic.key"}, {"value":"dic.value"}]
        /// </summary>
        /// <param name="dic">要追加的键值对</param>
        /// <param name="encodeLevel">编码等级</param>
        /// <returns>Json字符串</returns>
        private static string Dic2JsonSingleItem(Dictionary <string, string> dic, HTMLEncodeLevel encodeLevel)
        {
            bool hasData = false;
            var  sb      = new StringBuilder();

            if (dic.Count > 0)
            {
                hasData = true;
                sb.Append("{");
                //循环结果集,拼接成Json
                foreach (var kv in dic)
                {
                    //遍历列
                    //获取当前列的名称和值,拼接到JSON,值要加"''"
                    sb.Append(string.Format("\"{0}\":\"{1}\",", kv.Key, HtmlEncode(kv.Value, encodeLevel)));
                }
                //去年最后一项后面的逗号
                sb.Remove(sb.Length - 1, 1);

                //结束标记
                sb.Append("}");
            }

            return(hasData ? sb.ToString() : "{}");
        }
コード例 #2
0
        /// <summary>
        /// Dictionary转换为Json
        /// </summary>
        /// <param name="dic">要追加的键值对</param>
        /// <param name="encodeLevel">编码等级</param>
        /// <returns>Json字符串</returns>
        private static string Dic2JsonMultiterm(Dictionary <string, string> dic, HTMLEncodeLevel encodeLevel)
        {
            bool hasData = false;
            var  sb      = new StringBuilder();

            if (dic.Count > 0)
            {
                hasData = true;
                sb.Append("[");
                //循环结果集,拼接成Json
                foreach (var kv in dic)
                {
                    //遍历列
                    //获取当前列的名称和值,拼接到JSON,值要加"''"
                    sb.Append("{\"key\":\"" + kv.Key + "\",\"value\":\"" + HtmlEncode(kv.Value, encodeLevel) + "\"},");
                }
                //去年最后一项后面的逗号
                sb.Remove(sb.Length - 1, 1);

                //结束标记
                sb.Append("]");
            }

            return(hasData ? sb.ToString() : "{}");
        }
コード例 #3
0
        /// <summary>
        /// DataReader转换为Json
        /// </summary>
        /// <param name="dr">DataReader对象</param>
        /// <param name="JsonName">JsonName</param>
        /// <param name="encodeLevel">编码等级</param>
        /// <returns>Json字符串</returns>
        public static string DataReader2Json(IDataReader dr, string JsonName, HTMLEncodeLevel encodeLevel)
        {
            bool hasData = false;
            var  sb      = new StringBuilder();

            if (dr.FieldCount > 0)
            {
                sb.Append("{");
                sb.Append(string.Format("\"{0}\":[", JsonName));
                //循环结果集,拼接成Json
                while (dr.Read())
                {
                    hasData = true;
                    sb.Append("{");
                    //遍历列
                    for (int i = 0; i < dr.FieldCount; i++)
                    {
                        //如果不是最后一列,则在后面加上","
                        if (i < dr.FieldCount - 1)
                        {
                            //获取当前列的名称和值,拼接到JSON,值要加"''"
                            sb.Append(string.Format("\"{0}\":\"{1}\",", dr.GetName(i),
                                                    HtmlEncode(dr[i].ToString(), encodeLevel)));
                        }
                        else
                        {
                            sb.Append(string.Format("\"{0}\":\"{1}\"", dr.GetName(i),
                                                    HtmlEncode(dr[i].ToString(), encodeLevel)));
                        }
                    }
                    //单条记录结束
                    sb.Append("},");
                }
                //去年最后一项后面的逗号
                sb.Remove(sb.Length - 1, 1);
                //结束标记
                sb.Append("]}");
            }

            return(hasData ? sb.ToString() : "{\"" + JsonName + "\":[]}");
        }
コード例 #4
0
        /// <summary>
        /// 编码过滤特殊字符
        /// </summary>
        /// <param name="str">要编码的字符串</param>
        /// <param name="level">编码等级</param>
        /// <returns></returns>
        public static string HtmlEncode(string str, HTMLEncodeLevel level)
        {
            if (string.IsNullOrEmpty(str))
            {
                return(string.Empty);
            }

            switch (level)
            {
            case HTMLEncodeLevel.None:
                return(str);

            case HTMLEncodeLevel.Light:
                return(HtmlEncode_Light(str));

            case HTMLEncodeLevel.Medium:
                return(HtmlEncode_Medium(str));
                //case HTMLEncodeLevel.Heavy:
                //    return HtmlEncode_Heavy(str);
            }
            return(str);
        }
コード例 #5
0
        /// <summary>
        /// 数组转换为json格式
        /// </summary>
        /// <param name="arr">数组对象</param>
        /// <param name="encodeLevel">编码等级</param>
        /// <returns></returns>
        public static string Array2Json(string[] arr, HTMLEncodeLevel encodeLevel)
        {
            var sb = new StringBuilder();

            sb.Append("[");

            for (int i = 0; i < arr.Length; i++)
            {
                sb.Append("{");
                if (i == arr.Length - 1)
                {
                    sb.Append(string.Format("\"{0}\":\"{1}\"", "n", HtmlEncode(arr[i], encodeLevel))).Append("}");
                }
                else
                {
                    sb.Append(string.Format("\"{0}\":\"{1}\"", "n", HtmlEncode(arr[i], encodeLevel))).Append("},");
                }
            }
            sb.Append("]");

            return(sb.ToString());
        }
コード例 #6
0
 /// <summary>
 /// 将DataTable转化成JSON
 /// </summary>
 /// <param name="dt">DataTable</param>
 /// <param name="JsonName">JsonName</param>
 /// <param name="encodeLevel">编码等级</param>
 /// <returns></returns>
 public static string DataTable2Json(DataTable dt, string JsonName, HTMLEncodeLevel encodeLevel)
 {
     //Exception Handling
     if (dt != null && dt.Rows.Count > 0)
     {
         var JsonString = new StringBuilder();
         JsonString.Append("{");
         JsonString.Append(string.Format("\"{0}\":[", JsonName));
         for (int i = 0; i < dt.Rows.Count; i++)
         {
             JsonString.Append("{");
             for (int j = 0; j < dt.Columns.Count; j++)
             {
                 if (j < dt.Columns.Count - 1)
                 {
                     JsonString.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":" + "\"" + HtmlEncode(dt.Rows[i][j].ToString().Trim(), encodeLevel) + "\",");
                 }
                 else if (j == dt.Columns.Count - 1)
                 {
                     JsonString.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":" + "\"" + HtmlEncode(dt.Rows[i][j].ToString().Trim(), encodeLevel) + "\"");
                 }
             }
             /*end Of String*/
             if (i == dt.Rows.Count - 1)
             {
                 JsonString.Append("}");
             }
             else
             {
                 JsonString.Append("},");
             }
         }
         JsonString.Append("]}");
         return(JsonString.ToString());
     }
     return("{\"" + JsonName + "\":[]}");
 }
コード例 #7
0
        /// <summary>
        /// DataReader转换为Json
        /// </summary>
        /// <param name="sdr">DataReader对象</param>
        /// <param name="JsonName">JsonName</param>
        /// <param name="encodeLevel">编码等级</param>
        /// <returns>Json字符串</returns>
        public static string DataReader2Json(SqlDataReader sdr, string JsonName, HTMLEncodeLevel encodeLevel)
        {
            var sb = new StringBuilder();

            if (sdr.HasRows)
            {
                sb.Append("{");
                sb.Append(string.Format("\"{0}\":[", JsonName));
                //循环结果集,拼接成Json
                while (sdr.Read())
                {
                    sb.Append("{");
                    //遍历列
                    for (int i = 0; i < sdr.FieldCount; i++)
                    {
                        //如果不是最后一列,则在后面加上,
                        if (i < sdr.FieldCount - 1)
                        {
                            //获取当前列的名称和值,拼接到JSON,值要加''
                            sb.Append(string.Format("\"{0}\":\"{1}\",", sdr.GetName(i), HtmlEncode(sdr[i].ToString(), encodeLevel)));
                        }
                        else
                        {
                            sb.Append(string.Format("\"{0}\":\"{1}\"", sdr.GetName(i), HtmlEncode(sdr[i].ToString(), encodeLevel)));
                        }
                    }
                    //单条记录结束
                    sb.Append("},");
                }
                //去掉最后一项后面的逗号
                sb.Remove(sb.Length - 1, 1);
                //结束标记
                sb.Append("]}");
            }
            return(sb.ToString());
        }
コード例 #8
0
        /// <summary>
        /// 追加Json属性
        /// </summary>
        /// <param name="Json"></param>
        /// <param name="diction">要追加的键值对</param>
        /// <param name="encodeLevel">编码等级</param>
        /// <returns>Json字符串</returns>
        public static string Append2Json(string Json, Dictionary <string, string> diction, HTMLEncodeLevel encodeLevel)
        {
            var sb = new StringBuilder(Json);

            sb.Replace('}', ',', sb.Length - 1, 1);

            //加上其他键值
            foreach (var i in diction)
            {
                sb.Append(string.Format("\"{0}\":\"{1}\",", i.Key, HtmlEncode(i.Value, encodeLevel)));
            }
            //去年最后一项后面的逗号
            sb.Remove(sb.Length - 1, 1);

            //结束标记
            sb.Append("}");
            return(sb.ToString());
        }