- 01.///<summary>
- 02.///List转成json
- 03.///</summary>
- 04.///<typeparamname="T"></typeparam>
- 05.///<paramname="jsonName"></param>
- 06.///<paramname="list"></param>
- 07.///<returns></returns>
- 08.publicstaticstringListToJson<T>(IList<T>list,stringjsonName)
- 09.{
- 10.StringBuilderJson=newStringBuilder();
- 11.if(string.IsNullOrEmpty(jsonName))
- 12.jsonName=list[0].GetType().Name;
- 13.Json.Append("{/""+jsonName+"/":[");
- 14.if(list.Count>0)
- 15.{
- 16.for(inti=0;i<list.Count;i++)
- 17.{
- 18.Tobj=Activator.CreateInstance<T>();
- 19.PropertyInfo[]pi=obj.GetType().GetProperties();
- 20.Json.Append("{");
- 21.for(intj=0;j<pi.Length;j++)
- 22.{
- 23.Typetype=pi[j].GetValue(list[i],null).GetType();
- 24.Json.Append("/""+pi[j].Name.ToString()+"/":"+StringFormat(pi[j].GetValue(list[i],null).ToString(),type));
- 25.
- 26.if(j<pi.Length-1)
- 27.{
- 28.Json.Append(",");
- 29.}
- 30.}
- 31.Json.Append("}");
- 32.if(i<list.Count-1)
- 33.{
- 34.Json.Append(",");
- 35.}
- 36.}
- 37.}
- 38.Json.Append("]}");
- 39.returnJson.ToString();
- 40.}
- 41.
- 42.///<summary>
- 43.///List转成json
- 44.///</summary>
- 45.///<typeparamname="T"></typeparam>
- 46.///<paramname="list"></param>
- 47.///<returns></returns>
- 48.publicstaticstringListToJson<T>(IList<T>list)
- 49.{
- 50.objectobj=list[0];
- 51.returnListToJson<T>(list,obj.GetType().Name);
- 52.}
- 53.
- 54.///<summary>
- 55.///对象转换为Json字符串
- 56.///</summary>
- 57.///<paramname="jsonObject">对象</param>
- 58.///<returns>Json字符串</returns>
- 59.publicstaticstringToJson(objectjsonObject)
- 60.{
- 61.stringjsonString="{";
- 62.PropertyInfo[]propertyInfo=jsonObject.GetType().GetProperties();
- 63.for(inti=0;i<propertyInfo.Length;i++)
- 64.{
- 65.objectobjectValue=propertyInfo[i].GetGetMethod().Invoke(jsonObject,null);
- 66.stringvalue=string.Empty;
- 67.if(objectValueisDateTime||objectValueisGuid||objectValueisTimeSpan)
- 68.{
- 69.value="'"+objectValue.ToString()+"'";
- 70.}
- 71.elseif(objectValueisstring)
- 72.{
- 73.value="'"+ToJson(objectValue.ToString())+"'";
- 74.}
- 75.elseif(objectValueisIEnumerable)
- 76.{
- 77.value=ToJson((IEnumerable)objectValue);
- 78.}
- 79.else
- 80.{
- 81.value=ToJson(objectValue.ToString());
- 82.}
- 83.jsonString+="/""+ToJson(propertyInfo[i].Name)+"/":"+value+",";
- 84.}
- 85.jsonString.Remove(jsonString.Length-1,jsonString.Length);
- 86.returnjsonString+"}";
- 87.}
- 88.
- 89.///<summary>
- 90.///对象集合转换Json
- 91.///</summary>
- 92.///<paramname="array">集合对象</param>
- 93.///<returns>Json字符串</returns>
- 94.publicstaticstringToJson(IEnumerablearray)
- 95.{
- 96.stringjsonString="[";
- 97.foreach(objectiteminarray)
- 98.{
- 99.jsonString+=ToJson(item)+",";
- 100.}
- 101.jsonString.Remove(jsonString.Length-1,jsonString.Length);
- 102.returnjsonString+"]";
- 103.}
- 104.
- 105.///<summary>
- 106.///普通集合转换Json
- 107.///</summary>
- 108.///<paramname="array">集合对象</param>
- 109.///<returns>Json字符串</returns>
- 110.publicstaticstringToArrayString(IEnumerablearray)
- 111.{
- 112.stringjsonString="[";
- 113.foreach(objectiteminarray)
- 114.{
- 115.jsonString=ToJson(item.ToString())+",";
- 116.}
- 117.jsonString.Remove(jsonString.Length-1,jsonString.Length);
- 118.returnjsonString+"]";
- 119.}
- 120.
- 121.///<summary>
- 122.///Datatable转换为Json
- 123.///</summary>
- 124.///<paramname="table">Datatable对象</param>
- 125.///<returns>Json字符串</returns>
- 126.publicstaticstringToJson(DataTabledt)
- 127.{
- 128.StringBuilderjsonString=newStringBuilder();
- 129.jsonString.Append("[");
- 130.DataRowCollectiondrc=dt.Rows;
- 131.for(inti=0;i<drc.Count;i++)
- 132.{
- 133.jsonString.Append("{");
- 134.for(intj=0;j<dt.Columns.Count;j++)
- 135.{
- 136.stringstrKey=dt.Columns[j].ColumnName;
- 137.stringstrValue=drc[i][j].ToString();
- 138.Typetype=dt.Columns[j].DataType;
- 139.jsonString.Append("/""+strKey+"/":");
- 140.strValue=StringFormat(strValue,type);
- 141.if(j<dt.Columns.Count-1)
- 142.{
- 143.jsonString.Append(strValue+",");
- 144.}
- 145.else
- 146.{
- 147.jsonString.Append(strValue);
- 148.}
- 149.}
- 150.jsonString.Append("},");
- 151.}
- 152.jsonString.Remove(jsonString.Length-1,1);
- 153.jsonString.Append("]");
- 154.returnjsonString.ToString();
- 155.}
- 156.
- 157.///<summary>
- 158.///DataTable转成Json
- 159.///</summary>
- 160.///<paramname="jsonName"></param>
- 161.///<paramname="dt"></param>
- 162.///<returns></returns>
- 163.publicstaticstringToJson(DataTabledt,stringjsonName)
- 164.{
- 165.StringBuilderJson=newStringBuilder();
- 166.if(string.IsNullOrEmpty(jsonName))
- 167.jsonName=dt.TableName;
- 168.Json.Append("{/""+jsonName+"/":[");
- 169.if(dt.Rows.Count>0)
- 170.{
- 171.for(inti=0;i<dt.Rows.Count;i++)
- 172.{
- 173.Json.Append("{");
- 174.for(intj=0;j<dt.Columns.Count;j++)
- 175.{
- 176.Typetype=dt.Rows[i][j].GetType();
- 177.Json.Append("/""+dt.Columns[j].ColumnName.ToString()+"/":"+StringFormat(dt.Rows[i][j].ToString(),type));
- 178.if(j<dt.Columns.Count-1)
- 179.{
- 180.Json.Append(",");
- 181.}
- 182.}
- 183.Json.Append("}");
- 184.if(i<dt.Rows.Count-1)
- 185.{
- 186.Json.Append(",");
- 187.}
- 188.}
- 189.}
- 190.Json.Append("]}");
- 191.returnJson.ToString();
- 192.}
- 193.
- 194.///<summary>
- 195.///DataReader转换为Json
- 196.///</summary>
- 197.///<paramname="dataReader">DataReader对象</param>
- 198.///<returns>Json字符串</returns>
- 199.publicstaticstringToJson(DbDataReaderdataReader)
- 200.{
- 201.StringBuilderjsonString=newStringBuilder();
- 202.jsonString.Append("[");
- 203.while(dataReader.Read())
- 204.{
- 205.jsonString.Append("{");
- 206.for(inti=0;i<dataReader.FieldCount;i++)
- 207.{
- 208.Typetype=dataReader.GetFieldType(i);
- 209.stringstrKey=dataReader.GetName(i);
- 210.stringstrValue=dataReader[i].ToString();
- 211.jsonString.Append("/""+strKey+"/":");
- 212.strValue=StringFormat(strValue,type);
- 213.if(i<dataReader.FieldCount-1)
- 214.{
- 215.jsonString.Append(strValue+",");
- 216.}
- 217.else
- 218.{
- 219.jsonString.Append(strValue);
- 220.}
- 221.}
- 222.jsonString.Append("},");
- 223.}
- 224.dataReader.Close();
- 225.jsonString.Remove(jsonString.Length-1,1);
- 226.jsonString.Append("]");
- 227.returnjsonString.ToString();
- 228.}
- 229.
- 230.///<summary>
- 231.///DataSet转换为Json
- 232.///</summary>
- 233.///<paramname="dataSet">DataSet对象</param>
- 234.///<returns>Json字符串</returns>
- 235.publicstaticstringToJson(DataSetdataSet)
- 236.{
- 237.stringjsonString="{";
- 238.foreach(DataTabletableindataSet.Tables)
- 239.{
- 240.jsonString+="/""+table.TableName+"/":"+ToJson(table)+",";
- 241.}
- 242.jsonString=jsonString.TrimEnd(',');
- 243.returnjsonString+"}";
- 244.}
- 245.
- 246.///<summary>
- 247.///过滤特殊字符
- 248.///</summary>
- 249.///<paramname="s"></param>
- 250.///<returns></returns>
- 251.privatestaticstringString2Json(Strings)
- 252.{
- 253.StringBuildersb=newStringBuilder();
- 254.for(inti=0;i<s.Length;i++)
- 255.{
- 256.charc=s.ToCharArray()[i];
- 257.switch(c)
- 258.{
- 259.case'/"':
- 260.sb.Append("///"");break;
- 261.case'//':
- 262.sb.Append("");break;
- 263.case'/':
- 264.sb.Append("///");break;
- 265.case'/b':
- 266.sb.Append("//b");break;
- 267.case'/f':
- 268.sb.Append("//f");break;
- 269.case'/n':
- 270.sb.Append("//n");break;
- 271.case'/r':
- 272.sb.Append("//r");break;
- 273.case'/t':
- 274.sb.Append("//t");break;
- 275.default:
- 276.sb.Append(c);break;
- 277.}
- 278.}
- 279.returnsb.ToString();
- 280.}
- 281.
- 282.///<summary>
- 283.///格式化字符型、日期型、布尔型
- 284.///</summary>
- 285.///<paramname="str"></param>
- 286.///<paramname="type"></param>
- 287.///<returns></returns>
- 288.privatestaticstringStringFormat(stringstr,Typetype)
- 289.{
- 290.if(type==typeof(string))
- 291.{
- 292.str=String2Json(str);
- 293.str="/""+str+"/"";
- 294.}
- 295.elseif(type==typeof(DateTime))
- 296.{
- 297.str="/""+str+"/"";
- 298.}
- 299.elseif(type==typeof(bool))
- 300.{
- 301.str=str.ToLower();
- 302.}
- 303.returnstr;
- 304.}
C#中任意类型数据转成JSON格式数据输出
最新推荐文章于 2024-11-27 11:40:28 发布