将 DataTable 或 String 数据转化为json(.NET)

直接贴代码:

 

  1 using System;
  2 using System.Data;
  3 using System.Text;
  4 using System.Collections.Generic;
  5 using System.Reflection;
  6
  7 namespace PowerCheck.Tools
  8 {
  9
 10     public class ToJson
 11     {
 12         public ToJson()
 13         {
 14
 15         }
 16         public static string DataTableToJson(string jsonName, DataTable dt)
 17         {
 18             StringBuilder Json = new StringBuilder();
 19             Json.Append("{\"" + jsonName + "\":[");
 20             if (dt.Rows.Count > 0)
 21             {
 22                 for (int i = 0; i < dt.Rows.Count; i++)
 23                 {
 24                     Json.Append("{");
 25                     for (int j = 0; j < dt.Columns.Count; j++)
 26                     {
 27                         StringBuilder sb = new StringBuilder();
 28                         escape(dt.Rows[i][j].ToString(),sb);
 29
 30                         Json.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":\"" + sb.ToString() + "\"");
 31                         if (j < dt.Columns.Count - 1)
 32                         {
 33                             Json.Append(",");
 34                         }
 35                     }
 36                     Json.Append("}");
 37                     if (i < dt.Rows.Count - 1)
 38                     {
 39                         Json.Append(",");
 40                     }
 41                 }
 42             }
 43             Json.Append("]}");
 44             return Json.ToString();
 45         }
 46
 47         /// <summary>
 48         /// 将string数组转换成json字符串
 49         /// </summary>
 50         /// <param name="TagStrings">json对象数组名称</param>
 51         /// <param name="Strings">json对象数组值</param>
 52         /// <returns></returns>
 53         public static string StringArrayToJason(string[] TagStrings, string[] Strings)
 54         {
 55             StringBuilder Json = new StringBuilder();
 56             Json.Append("{");
 57             for (int i = 0; i < Strings.Length; i++)
 58             {
 59                 Json.Append(TagStrings[i]);
 60                 Json.Append(":");
 61                 Json.Append(Strings[i]);
 62                 if (i < Strings.Length - 1)
 63                 {
 64                     Json.Append(",");
 65                 }
 66             }
 67             Json.Append("}");
 68             return Json.ToString();
 69         }
 70
 71         public static string ObjectToJson<T>(string jsonName, IList<T> IL)
 72         {
 73             StringBuilder Json = new StringBuilder();
 74             Json.Append("{\"" + jsonName + "\":[");
 75             if (IL.Count > 0)
 76             {
 77                 for (int i = 0; i < IL.Count; i++)
 78                 {
 79                     T obj = Activator.CreateInstance<T>();
 80                     Type type = obj.GetType();
 81                     PropertyInfo[] pis = type.GetProperties();
 82                     Json.Append("{");
 83                     for (int j = 0; j < pis.Length; j++)
 84                     {
 85                         Json.Append("\"" + pis[j].Name.ToString() + "\":\"" + pis[j].GetValue(IL[i], null) + "\"");
 86                         if (j < pis.Length - 1)
 87                         {
 88                             Json.Append(",");
 89                         }
 90                     }
 91                     Json.Append("}");
 92                     if (i < IL.Count - 1)
 93                     {
 94                         Json.Append(",");
 95                     }
 96                 }
 97             }
 98             Json.Append("]}");
 99             return Json.ToString();
100         }
101
102
103         public static void escape(string s, StringBuilder sb)
104         {
105
106             for (int i = 0; i < s.Length; i++)
107             {
108                 char ch = s[i];
109
110                 switch (ch)
111                 {
112
113                     case '"':
114                         sb.Append("\\\"");
115                         break;
116
117                     case '\\':
118
119                         sb.Append("\\\\");
120
121                         break;
122
123                     case '\b':
124
125                         sb.Append("\\b");
126
127                         break;
128
129                     case '\f':
130
131                         sb.Append("\\f");
132
133                         break;
134
135                     case '\n':
136
137                         sb.Append("\\n");
138
139                         break;
140
141                     case '\r':
142
143                         sb.Append("\\r");
144
145                         break;
146
147                     case '\t':
148
149                         sb.Append("\\t");
150
151                         break;
152
153                     case '/':
154
155                         sb.Append("\\/");
156
157                         break;
158
159                     default:
160
161                         // Reference: http://www.unicode.org/versions/Unicode5.1.0/
162
163                         if ((ch >= '\u0000' && ch <= '\u001F')
164
165                         || (ch >= '\u007F' && ch <= '\u009F')
166
167                         || (ch >= '\u2000' && ch <= '\u20FF'))
168                         {
169
170                             string ss = Convert.ToString(ch,16);
171
172                             sb.Append("\\u");
173
174                             for (int k = 0; k < 4 - ss.Length; k++)
175                             {
176
177                                 sb.Append('0');
178
179                             }
180
181                             sb.Append(ss.ToUpper());
182
183                         }
184                         else
185                         {
186
187                             sb.Append(ch);
188
189                         }
190
191                         break;
192
193                 }
194
195             }
196
197         }
198
199     }
200
201
202
203 }

 

 

 

时间: 2024-08-01 22:23:26

将 DataTable 或 String 数据转化为json(.NET)的相关文章

FormData 数据转化为 json 数据

两种方法 <!-- 实例:将 FormData 转化为 json --> <meta charset="utf-8"/> <form enctype='application/json' method="post"> <label>用户:</label> <input type="text" name="user"></br> <labe

cxf 返回一条数据时如何转化为json数组输出

问题描述 cxf 返回一条数据时如何转化为json数组输出 我用cxf2.0 restful框架,返回多条数据时是有中括号包含着大括号的,但是返回一条数据时只有大括号,没有中括号,走的方法是一样的,但是结果却不同,如何做能让返回的json数据都是以数组形式返回的呢,而不是对象,我是在返回的list.add进去的,但是返回一条数据就变为对象了,这是怎么回事,如何解决呢

.NET DataTable转化为json格式

标准的json用"分隔,不用'  public static string DataSetToJson(DataTable dt)    {        string json = string.Empty;        try        {            if (dt==null||dt.Rows.Count == 0)            {                return "";            }            json =

C#把DataSet内数据转化为Excel和Word文件的通用类

前不久因为项目的需要写的一个C#把DataSet内数据转化为Excel和Word文件的通用类,这些关于Excel.Word的导出方法,基本可以实现日常须要,其中有些方法可以把数据导出后 生成Xml格式,再导入数据库!有些屏蔽内容没有去掉,保留下来方便学习参考用之. 最后请引用Office相应COM组件,导出Excel对象的一个方法要调用其中的一些方法和属性. using System; using System.Collections; using System.ComponentModel;

C#实现DataSet内数据转化为Excel和Word文件的通用类完整实例_C#教程

本文实例讲述了C#实现DataSet内数据转化为Excel和Word文件的通用类.分享给大家供大家参考,具体如下: 前不久因为项目的需要写的一个C#把DataSet内数据转化为Excel和Word文件的通用类,这些关于Excel.Word的导出方法,基本可以实现日常须要,其中有些方法可以把数据导出后 生成Xml格式,再导入数据库!有些屏蔽内容没有去掉,保留下来方便学习参考用之. 最后请引用Office相应COM组件,导出Excel对象的一个方法要调用其中的一些方法和属性. using Syste

把DataTable转换为泛型List&lt;T&gt;或是JSON

原文:把DataTable转换为泛型List<T>或是JSON 在开发ASP.NET Web API或ASP.NET MVC时,我们从数据库得到的数据往往是DataSet或是DataTable.为了能让前端JQuery能方便使用至这些数据,我们需要把这些数据转换为泛型List<T>或是JSON. Insus.NET有把这个转换功能写成一个扩展方法: 方法源代码: public static List<T> ToList<T>(this DataTable d

java将数据转成json编码格式技术实例教程

json编码;是一个轻量级的数据存储和传输的语言 在java中需要引入json相关的包,引包方式在工程的lib下就可以了 JSON与JAVA数据的转换(JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非 常适合于服务器与 JavaScript 之间的数据的交互) json的表达式相当于JavaScript的原始类的声明方式相似  代码如下 复制代码 var obj={     name:"javascript",     age:20 

java 把xml转化为json

Java 中如何把xml转化为json 呢? 常规思路是: (1)通过第三方库 把xml 转换为java bean; (2)把java bean 序列化为json 字符串 但是上述方式有一个缺点,那就是需要java bean来中转. 以下提供两种方式 不需要java bean 方式一:使用json-lib   Java代码   XMLSerializer xmlSerializer = new XMLSerializer();           JSON jsonObj = xmlSerial

JS对象序列化为JSON对象

JS对象序列化为JSON对象,如下代码: /**    * JSON 解析类    * 方法:    * 将JSON字符串解码为页面可识别的object对象    * @param {String} json The JSON string    * @return {Object} The resulting object     * Object o = JSONUtil.decode(json);    *     * 将JS对象序列化为JSON字符串    * @param {Mixed