.net中的类型转换成Json的格式

 

 

代码
1 /// <summary>
2 /// json数据帮助类
3 /// </summary>
4   public class JsonUtil
5 {
6 #region GetJSON
7 /// <summary>
8 /// 得到Json数据
9 /// </summary>
10 /// <param name="data">数据</param>
11 /// <returns>String JSON </returns>
12   public static string GetJSON(object data)
13 {
14 StringBuilder sb = new StringBuilder();
15 PropertyInfo[] propertys = data.GetType().GetProperties();
16 if (data.GetType().IsGenericType)
17 {
18 sb.Append("[");
19 IList list = data as IList;
20 for (int i = 0; i < list.Count; i++)
21 {
22 sb.Append(GetJSON(list[i]));
23 if (i < list.Count - 1)
24 {
25 sb.Append(",");
26 }
27 }
28 sb.Append("]");
29 }
30 else
31 {
32 sb.Append("{");
33 sb.Append("\"");
34   sb.Append(data.GetType().Name);
35 sb.Append("\"");
36   sb.Append(":");
37 sb.Append("{");
38 int count = propertys.Length;
39 for (int i = 0; i < count; i++)
40 {
41 sb.Append("\"");
42   sb.Append(propertys[i].Name);
43 sb.Append("\"");
44 sb.Append(":");
45 switch (propertys[i].PropertyType.Name)
46 {
47 case "Int":
48 case "Double":
49 case "Decimal":
50 case "float":
51 case "long":
52 sb.Append(propertys[i].GetValue(data, null));
53 break;
54 default:
55 sb.Append("\"");
56 sb.Append(propertys[i].GetValue(data, null));
57 sb.Append("\"");
58 break;
59 }
60 if (i < count - 1)
61 {
62 sb.Append(",");
63 }
64 }
65 sb.Append("}");
66 sb.Append("}");
67 }
68 return sb.ToString();
69 }
70 #endregion
71 }

 

这个个人的一个总结,请那位高手有什么补充的,请指教。

这个类只是对一些简单的数据和List集合做了处理,其中的不足。还有待改进。

 

 

posted on 2010-07-05 20:22  fengpb  阅读(323)  评论(0)    收藏  举报

导航