WebService返回DataSet,Xml,Json
2015-05-07 16:54
393 查看
#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">
相关文章推荐
- Jquery 调用.net WebService 返回Json、XML方法
- asp通过json调用webservice接口,并获取返回的xml数据及解析
- 我用vs2005写了一个webservice用来查询sql2005数据库中表值,返回一个dataset类型集合,测试时候显示的xml文档没有问题,但是当我添加web引用的时候却无法正常显示而且报错原因之一。
- WebService :实现DataSet , DataTable , XML 的返回。。。。
- js 无参数、有参数的webservice通信方法 XMLHttpRequest和 $.ajax方式汇总及返回值为json问题
- WebService传递XML数据 C#DataSet操作XML 解析WebService返回的XML数据
- Webservice返回json数据格式不带xml头部
- WebService传递XML数据 C#DataSet操作XML 解析WebService返回的XML数据
- Jquery Ajax学习实例6 向WebService发出请求,返回DataSet(XML) 异步调用
- Jquery Ajax学习实例6 向WebService发出请求,返回DataSet(XML) 异步调用
- JQuery调用webservice,返回的json数据和XML数据的处理方法
- Jquery Ajax学习实例6-向WebService发出请求,返回DataSet(XML) 异步调用
- JQuery调用webservice,返回的json数据和XML数据的处理方法
- jQuery调用WebService返回JSON数据及参数设置注意问题
- 使用 ASP.NET 一般处理程序或 WebService 返回 JSON
- jquery Ajax 方法返回数据的获取,包括JSON,XML,TXT
- WebService CXF框架的使用(实现JSON与XML数据传输)
- [C#]Winform后台提交数据且获取远程接口返回的XML数据,转换成DataSet
- 利用JQuery jsonp实现Ajax跨域请求 .Net 的*.handler 和 WebService,返回json数据
- java访问WebService接口返回xml