WebService返回DataSet,Xml,Json
来源:互联网 发布:美国非农数据 编辑:程序博客网 时间:2024/05/05 17:36
#region 返回DataSet [WebMethod] public DataSet GetAllDepTra_DataSet() { DataTable dt = commonService.GetAllDepTra(); DataSet ds = new DataSet(); ds.Tables.Add(dt); return ds; } #endregion
#region 返回Xml [WebMethod] public XmlElement GetAllDepTra_XElement() { DataTable dt = commonService.GetAllDepTra(); #region 方法一 //XElement result = new XElement("Result"); //XElement search = new XElement("Accounts"); //if (dt.Rows.Count > 0) //{ // search.Add( // from d in dt.AsEnumerable() // select new XElement( // "Account" // , new XElement("name", d.Field<string>("名称")) // )); // search.Add( // new XElement("count", dt.Rows.Count) // ); //} //result.Add(search); //XmlDocument doc = new XmlDocument(); //doc.LoadXml(result.ToString(SaveOptions.DisableFormatting)); //return doc.DocumentElement; #endregion #region 方法二 直接将DataTable转化为xml dt.TableName = "Test"; XmlSerializer xmlSerial = new XmlSerializer(typeof(DataTable)); StringWriter sw = new StringWriter(); xmlSerial.Serialize(sw, dt); // 序列化table string ss = sw.ToString(); XmlDocument dom = new XmlDocument(); dom.LoadXml(ss); XmlElement root = dom.DocumentElement; return root; #endregion } #endregion #region 返回Json [WebMethod] public string GetAllDepTra_Json() { DataTable dt = commonService.GetAllDepTra(); StringBuilder jsonString = new StringBuilder(); jsonString.Append("["); DataRowCollection drc = dt.Rows; for (int i = 0; i < drc.Count; i++) { jsonString.Append("{"); for (int j = 0; j < dt.Columns.Count; j++) { string strKey = dt.Columns[j].ColumnName; string strValue = drc[i][j].ToString(); Type type = dt.Columns[j].DataType; jsonString.Append("\"" + strKey + "\":"); strValue = StringFormat(strValue, type); if (j < dt.Columns.Count - 1) { jsonString.Append(strValue + ","); } else { jsonString.Append(strValue); } } jsonString.Append("},"); } jsonString.Remove(jsonString.Length - 1, 1); jsonString.Append("]"); return jsonString.ToString(); } /// <summary> /// 过滤特殊字符 /// </summary> /// <param name="s">字符串</param> /// <returns>json字符串</returns> private static string String2Json(String s) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < s.Length; i++) { char c = s.ToCharArray()[i]; switch (c) { case '\"': sb.Append("\\\""); break; case '\\': sb.Append("\\\\"); break; case '/': sb.Append("\\/"); break; case '\b': sb.Append("\\b"); break; case '\f': sb.Append("\\f"); break; case '\n': sb.Append("\\n"); break; case '\r': sb.Append("\\r"); break; case '\t': sb.Append("\\t"); break; default: sb.Append(c); break; } } return sb.ToString(); } /// <summary> /// 格式化字符型、日期型、布尔型 /// </summary> /// <param name="str"></param> /// <param name="type"></param> /// <returns></returns> private static string StringFormat(string str, Type type) { if (type == typeof(string)) { str = String2Json(str); str = "\"" + str + "\""; } else if (type == typeof(DateTime)) { str = "\"" + str + "\""; } else if (type == typeof(bool)) { str = str.ToLower(); } else if (type != typeof(string) && string.IsNullOrEmpty(str)) { str = "\"" + str + "\""; } return str; } #endregion
<pre name="code" class="csharp">个人还是比较倾向于Json的写法,在调用该方法时也方便使用返回结果。
Json返回结果如下:
{
[{
"名称": "tesrt",
"负责人ID": b9d6f057-ca4e-e411-a8d9-b82a72d5a332,
"培训摘要": "asdf",
"创建时间": "2015/3/16 3:23:57"
}
]
}
</pre><pre code_snippet_id="661220" snippet_file_name="blog_20150507_7_8019957" name="code" class="csharp">
0 0
- WebService返回DataSet,Xml,Json
- webservice返回dataset
- WebService传递XML数据 C#DataSet操作XML 解析WebService返回的XML数据
- WebService 返回json格式和返回xml格式的数据
- Jquery读取WebService、WebService返回DataSet常见问题
- 2.Webservice返回json数据并去掉Xml头部。
- ios webservice编程:soap封装调用,返回xml,json解析
- Webservice返回json数据格式不带xml头部
- webservice返回json数据
- 从DataSet 返回XML 数据
- JsonHelper Json转xml,Json转DataSet,DataSet转Json
- JsonHelper Json转xml,Json转DataSet,DataSet转Json
- WebService返回DataSet/DataTable的争议
- webservice 返回自定义xml
- xfire webservice返回xml
- asp.net webservice返回json
- android webservice 调用返回json
- webservice+Jquery返回Json格式
- 获取控件高度等信息
- 欢迎使用CSDN-markdown编辑器
- C++找对象的季节(补)——人数不定的工资
- Java TCP/UDP socket 编程流程总结
- 关于Struts2使用redirectAction方式在两个Action之间传值时中文乱码问题的解决方法
- WebService返回DataSet,Xml,Json
- Solaris10 SPARC操作系统中使用Nginx+Tomcat实现负载均衡,并实现websocket代理(一)
- SpringMVC与Struts2的对比
- _AFXDLL AFX_EXT_CLASS
- pygrib
- Filter实例
- Servlet3.0学习总结(一)——使用注解标注Servlet
- jQuery中attr()解决checked属性问题
- Instruments 使用技巧 Time Profiler