
/// <summary>   
/// List转成json    
/// </summary>   
/// <typeparam name="T"></typeparam>   
/// <param name="jsonName"></param>   
/// <param name="list"></param>   
/// <returns></returns>   
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() + "\":" + StringFormat(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();   
}   
  
/// <summary>   
/// List转成json    
/// </summary>   
/// <typeparam name="T"></typeparam>   
/// <param name="list"></param>   
/// <returns></returns>   
public static string ListToJson<T>(IList<T> list)   
{   
 object obj = list[0];   
 return ListToJson<T>(list, obj.GetType().Name);   
}   
  
/// <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>    
/// 对象集合转换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="array">集合对象</param>    
/// <returns>Json字符串</returns>    
public static string