C#.net 后端程序:
/// <summary>
/// 活动广告顶图
/// </summary>
/// <returns></returns>
[WebMethod]
public string GetAd(string typeName)
{
string sql = @"select 链接序号 AS LINK_ID,分类 AS TYPE_NAME,地址 AS HREF_URL,图片地址 AS PIC_URL from 友情链接 where 分类='" + typeName + "'";
DataSet ds = Maticsoft.DBUtility.DbHelperSQL.Query(sql);
return MiroSoft.DBUtility.DataTableConvertJson.DataTable2Json(ds.Tables[0]);
}
以小程序端获取首页广告图为例,获取相应分类信息后,通过DataTableConvertJson.DataTable2Json方法将表格形式数据转化为JSON数据。
返回数据如:
<string xmlns="http://tempuri.org/">
[{"LINK_ID":"52","TYPE_NAME":"手机首页","HREF_URL":"#","PIC_URL":"Link_20220711151256509.jpg"}]
</string>
小程序需要使用该数据需要对XML数据进行提取,首先需要导入DOMParser包,代码如下:
import {
DOMParser
} from 'xmldom';
数据读取并使用代码如下:
/**
* 请求静态数据只是为了代码不那么乱
* 分次请求未作整合
*/
async loadData() {
//console.log(this.cartList);
let carouselList = await this.$api.json('carouselList');
this.titleNViewBackground = carouselList[0].background;
this.swiperLength = carouselList.length;
this.carouselList = carouselList;
//首页轮播图
uni.request({
url: this.websiteUrl + "/WebService.asmx/GetAd?typeName=手机首页",
data: {},
method: 'GET',
header: {
'Content-Type': 'text/xml; charset=utf-8',
},
success: (res) => {
const doc = new DOMParser().parseFromString(res.data, 'text/xml');
var proList = JSON.parse(doc.getElementsByTagName("string")[0].childNodes[0]
.nodeValue);
let list = proList || [];
this.carouselList = list;
}
});
}