Webservice返回json设置
发布时间:2020-12-17 00:14:42 所属栏目:安全 来源:网络整理
导读:一 、服务器端设置 ??? 1.修改web.config 在web.config里面的的system.Web节点添加 webServices protocols add name= "HttpPost"/ add name= "HttpGet"/ /protocols /webServices 2.修改XX.asmx.cs [WebService(Namespace = "http://tempuri.org/")] [WebSer
|
一 、服务器端设置
<webServices>
<protocols>
<add name= "HttpPost"/>
<add name= "HttpGet"/>
</protocols>
</webServices> 2.修改XX.asmx.cs
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]
//至此,一般函数可在android中可以通过代码返回json数据,返回datatable的函数不可以
#region dataTable转换成Json格式
///
/// dataTable转换成Json格式
///
///
///
public string DataTableJson(DataTable dt)
{
StringBuilder jsonBuilder = new StringBuilder();
jsonBuilder.Append("{"");
jsonBuilder.Append(dt.TableName.ToString());
jsonBuilder.Append("":[");
for (int i = 0; i < dt.Rows.Count; i++)
{
jsonBuilder.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
jsonBuilder.Append(""");
jsonBuilder.Append(dt.Columns[j].ColumnName);
jsonBuilder.Append("":"");
jsonBuilder.Append(dt.Rows[i][j].ToString());
jsonBuilder.Append("",");
}
jsonBuilder.Remove(jsonBuilder.Length - 1,1);
jsonBuilder.Append("},");
}
jsonBuilder.Remove(jsonBuilder.Length - 1,1);
jsonBuilder.Append("]");
jsonBuilder.Append("}");
return jsonBuilder.ToString();
}
#endregion 再将原本需要返回datatable的函数新建一个类似函数。此处注意,一定要写
[ScriptMethod(ResponseFormat = ResponseFormat.Xml)],不然android在获取数据时系统又会将转换好的json数据再加一层json。 比如
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Xml)]
public string HPReadQueryPhone(string strSql,string BD)
{
try
{
MSQuery dbTable = new MSQuery();
DataSet dsTable = dbTable.HPReadQuery(strSql,BD);
dbTable = null;
if (dsTable.Tables.Count == 0)
{
return "";
}
else
{
return DataTableJson(dsTable.Tables[0]);
}
}
catch (System.Exception err)
{
ThrowException(err);
return null;
}
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
