zoukankan      html  css  js  c++  java
  • c# 对象集合转Json

      /// <summary> 
            /// 普通集合转换Json 
            /// </summary> 
            /// <param name="array">集合对象</param> 
            /// <returns>Json字符串</returns> 
            public static string ToArrayString(IEnumerable array)
            {
                string jsonString = "[";
                foreach (object item in array)
                {
                    jsonString = ToJson(item.ToString()) + ",";
                }
                jsonString.Remove(jsonString.Length - 1, jsonString.Length);
                return jsonString + "]";
            }
      /// <summary> 
            /// 对象集合转换Json 
            /// </summary> 
            /// <param name="array">集合对象</param> 
            /// <returns>Json字符串</returns> 
            public static string ToJson(IEnumerable array)
            {
                string jsonString = "[";
                foreach (object item in array)
                {
                    jsonString += ToJson(item) + ",";
                }
                jsonString.Remove(jsonString.Length - 1, jsonString.Length);
                return jsonString + "]";
            }
            /// <summary> 
            /// 对象转换为Json 
            /// </summary> 
            /// <param name="jsonObject">对象</param> 
            /// <returns>Json字符串</returns> 
            public static string ToJson(object jsonObject)
            {
                string jsonString = "{";
                PropertyInfo[] propertyInfo = jsonObject.GetType().GetProperties();
                for (int i = 0; i < propertyInfo.Length; i++)
                {
                    object objectValue = propertyInfo[i].GetGetMethod().Invoke(jsonObject, null);
                    string value = string.Empty;
                    if (objectValue is DateTime || objectValue is Guid || objectValue is TimeSpan)
                    {
                        value = "'" + objectValue.ToString() + "'";
                    }
                    else if (objectValue is string)
                    {
                        value = "'" + ToJson(objectValue.ToString()) + "'";
                    }
                    else if (objectValue is IEnumerable)
                    {
                        value = ToJson((IEnumerable)objectValue);
                    }
                    else
                    {
                        value = ToJson(objectValue.ToString());
                    }
                    jsonString += """ + ToJson(propertyInfo[i].Name) + "":" + value + ",";
                }
                jsonString.Remove(jsonString.Length - 1, jsonString.Length);
                return jsonString + "}";
            }
            /// <summary>
            /// List转换成Json
            /// </summary>
            public static string ListToJson<T>(IList<T> list)
            {
                object obj = list[0];
                return ListToJson<T>(list, obj.GetType().Name);
            }
    
            /// <summary>
            /// List转换成Json 
            /// </summary>
            public static string ListToJson<T>(IList<T> list, string jsonName)
            {
                StringBuilder Json = new StringBuilder();
                if (string.IsNullOrEmpty(jsonName)) jsonName = list[0].GetType().Name;
                Json.Append("{"" + jsonName + "":[");
                if (list.Count > 0)
                {
                    for (int i = 0; i < list.Count; i++)
                    {
                        T obj = Activator.CreateInstance<T>();
                        PropertyInfo[] pi = obj.GetType().GetProperties();
                        Json.Append("{");
                        for (int j = 0; j < pi.Length; j++)
                        {
                            Type type = pi[j].GetValue(list[i], null).GetType();
                            Json.Append(""" + pi[j].Name.ToString() + "":" + String.Format(pi[j].GetValue(list[i], null).ToString(), type));
    
                            if (j < pi.Length - 1)
                            {
                                Json.Append(",");
                            }
                        }
                        Json.Append("}");
                        if (i < list.Count - 1)
                        {
                            Json.Append(",");
                        }
                    }
                }
                Json.Append("]}");
                return Json.ToString();
            }
  • 相关阅读:
    JVM体系结构和工作方式
    ClassLoader工作机制
    Javac编译原理
    类与类之间的几种关系
    一周总结汇总_2016-09-04
    一周规划汇总_2016-09-04
    Java基础知识笔记(一:修饰词、向量、哈希表)
    控制反转IoC简介
    DBCP连接池简介
    Struts与Struts2的区别
  • 原文地址:https://www.cnblogs.com/feizianquan/p/9720814.html
Copyright © 2011-2022 走看看