h5/小程序直接读本地/在线的json文件数据

张开发
2026/4/16 7:16:01 15 分钟阅读

分享文章

h5/小程序直接读本地/在线的json文件数据
H5:// 报名人数读取 js/huchao_enroll.json 的 shehui$(function() {function renderEnrollNums(total) {var s String(Math.max(0, Math.floor(Number(total) || 0)));var html ;for (var i 0; i s.length; i) {html span classcity-enroll-num s[i] /span;}$(#enrollNums).html(html);}$.getJSON(js/huchao_enroll.json).done(function(data) {renderEnrollNums(parseInt(data data.shehui, 10) || 0);}).fail(function() {$(#enrollNums).html();});});小程序// p// 报名人数 xxx.json 的 count数值 api/topic/1/s 的 totalvar util require(../../utils/util.js)const DEFAULT_ENROLL_COUNT 0const REMOTE_ENROLL_JSON_URL https://666.jsonconst CARNIVAL_TOPIC_ID 1Page({data: {enrollCount: DEFAULT_ENROLL_COUNT,enrollDigits: [0],currentNav: hunhe,},goBack() {wx.navigateBack()},onLoad(options) {this._jsonCount nullthis._apiCount nullthis.applyEnrollCount(DEFAULT_ENROLL_COUNT)this.loadRemoteEnrollCount()this.loadTopicRegistrationStats()},/** 合并两处数据源后刷新展示 */refreshEnrollSum() {var j this._jsonCount null ? 0 : this._jsonCountvar a this._apiCount null ? 0 : this._apiCountthis.applyEnrollCount(j a)},applyEnrollCount(n) {const num Math.max(0, parseInt(n, 10) || 0)const digits String(num).split()this.setData({ enrollCount: num, enrollDigits: digits })},loadRemoteEnrollCount() {const url REMOTE_ENROLL_JSON_URL (REMOTE_ENROLL_JSON_URL.indexOf(?) 0 ? : ?) _t Date.now()wx.request({url,method: GET,success: (res) {if (res.statusCode ! 200 || res.data null) {this._jsonCount 0this.refreshEnrollSum()return}let count nullconst d res.dataif (typeof d number) count delse if (typeof d object d.count ! undefined) count d.countelse if (typeof d string) {try {const o JSON.parse(d)if (o o.count ! undefined) count o.count} catch (e) {count parseInt(d, 10)}}if (count ! null count ! undefined !isNaN(Number(count))) {this._jsonCount Math.max(0, parseInt(count, 10) || 0)} else {this._jsonCount 0}this.refreshEnrollSum()},fail: () {this._jsonCount 0this.refreshEnrollSum()},})},loadTopicRegistrationStats() {util.getTopicRegistrationStats({ id: CARNIVAL_TOPIC_ID }).then((r) {if (r r.status r.data r.data.registration_total ! null) {var t r.data.registration_totalthis._apiCount Math.max(0, parseInt(t, 10) || 0)} else {this._apiCount 0}this.refreshEnrollSum()}).catch(() {this._apiCount 0this.refreshEnrollSum()})},onNavTap(e) {const nav e.currentTarget.dataset.navif (nav) {this.setData({ currentNav: nav })}},onReady() {},onShow() {},onHide() {},onUnload() {},onPullDownRefresh() {},onReachBottom() {},onShareAppMessage() {},})

更多文章