借助云开发实现小程序列表页(包含json数据的请求和解析)

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 借助云开发实现小程序列表页(包含json数据的请求和解析)

我们之前是请求服务器数据,然后把服务器数据显示到我们的小程序上,比如列表数据和详情页数据。但是我们如果不会后台开发,没有自己的服务器,怎么定义自己的列表和详情页数据,并且能通过小程序拿到显示到列表页和详情页呢。今天就来教大家摆脱后台,用小程序云开发实现自己的数据后台。并且请求到数据展示到列表页和详情页。


老规矩,先看效果图:


列表详情页.png


本节知识点:


  • 1,借助云开发实现自己的小程序数据后台
  • 2,请求列表数据并解析展示到列表页
  • 3,请求详情页数据并解析到详情页

这里涉及到的基础的知识,大家可以点击阅读原文查看相关的教程。

这里就默认你已经创建好自己的小程序云开发后台。

我们根据小程序云开发入门---云数据库数据源的导入与导出,把下面数据导入到云开发数据库。

{"_id":"XLHdu-SiwXKAQth1","xuexiao":"兰州交通大学","didian":"第七教学楼1101教室","shijian":"2019年4月25日下午3点半","gongsi":"中铁七局安装工程有限公司","danweidizhi":"北京市东城区美术馆后街999号","zhuanye":"土木工程类;建筑类;水电类","daiyu":"薪资3000-6000元,五险一金,年终奖,免费体检,出国旅游","lianxiren":"王先生:15611823566"}
{"_id":"XLHdu-SiwXKAQth2","xuexiao":"兰州交通大学","didian":"第七教学楼1801教室","shijian":"2019年4月25日下午3点半","gongsi":"中建七局安装工程有限公司","danweidizhi":"北京市东城区美术馆后街666号","zhuanye":"土木工程类;建筑类;水电类","daiyu":"薪资3000-6000元,五险一金,年终奖,免费体检,出国旅游","lianxiren":"王先生:15611823566"}
{"_id":"XLHdu-SiwXKAQthe","xuexiao":"兰州交通大学","didian":"校本部    第五教学楼113教室","shijian":"2019-04-15    14:30-16:00","gongsi":"中国能源建设集团北京电力建设有限公司 ","danweidizhi":"中国能源建设集团北京电力建设有限公司 ","zhuanye":"土木工程类;建筑类;水电类","daiyu":" 一、公司简介  北京电力建设有限公司始建于1964年,现隶属于中国能源建设集团有限公司,由中国葛洲坝集团股份有限公司整体托管,是建筑、安装施工综合性国家一级全民所有制企业,是国内最早通过质量体系、职业健康安全与环境管理体系认证的单位之一,是国家认定的500强建筑企业之一。公司建立了以“重品德、重能力、重业绩、重贡献”为导向的人才成长机制,鼓励立足岗位,充分发挥积极性、主动性和创造性,在岗位上建功、成长,立志打造一支作风正、素质高、能力强、技术精的一流队伍。  公司业务涉足火电、电网、风电、光伏、环保、调试、电力检修、工民建、市政、燃气、煤化工等领域,足迹遍布全国22个省及印度尼西亚。先后80余次荣获包括中国建设工程质量最高奖—“鲁班奖”在内的国家级和省部级以上奖项,拥有实用新型专利4项、行业级工法4项。公司正以管理先进、生机勃勃的现代化新型企业的崭新面貌展现在世人面前。  公司经营项目包括:承包境外电力、房屋建筑、市政公用、钢结构、高耸构筑物、环保工程和境内国际招标工程;施工总承包;专业承包;租赁机械设备;货物进出口、技术进出口、代理进出口等。  公司正在向市场型、管理型、产融结合型的产业结构转型升级 。大平台的企业,高起点的岗位,加速度的晋升通道助力优秀人才放飞梦想。  详细内容请查看北京电力建设有限公司网址(http://www.bpcc.ceec.net.cn)。  二、需求信息  序号 \u0009  需求专业 \u0009  本科 \u0009  硕士  1 \u0009  电气工程及其自动化 \u0009  11 \u0009  2 \u0009  自动化 \u0009  10 \u0009  3 \u0009  土木工程 \u0009  10 \u0009  4 \u0009  道路桥梁与渡河工程 \u0009  4 \u0009  5 \u0009  给排水科学与工程 \u0009  4 \u0009  6 \u0009  测绘工程 \u0009  3 \u0009  7 \u0009  工程管理 \u0009  3 \u0009  8 \u0009  工程造价 \u0009  4 \u0009  9 \u0009  金融学 \u0009  1 \u0009  1  10 \u0009  哲学类 \u0009  1 \u0009  1  11 \u0009  能源与动力工程 \u0009  6 \u0009  12 \u0009  新能源科学与工程 \u0009  6 \u0009  13 \u0009  机械设计制造及其自动化 \u0009  3 \u0009  14 \u0009  审计学 \u0009  2 \u0009  15 \u0009  会计学 \u0009  3 \u0009  16 \u0009  财务管理 \u0009  3 \u0009  17 \u0009  国际经济与贸易 \u0009  3 \u0009  18 \u0009  法学/社会学 \u0009  2 \u0009  1  19 \u0009  人力资源管理 \u0009  2 \u0009  20 \u0009  工商管理 \u0009  2 \u0009  22 \u0009  安全工程 \u0009  2 \u0009  23 \u0009  焊接技术与工程 \u0009  2 \u0009  24 \u0009  金属材料工程 \u0009  4 \u0009  25 \u0009  汉语言文学/历史学 \u0009  3 \u0009  1  26 \u0009  物理学 \u0009\u0009  1  27 \u0009  软件工程/数学与应用数学 \u0009\u0009  1    \u0009  合计 \u0009  94 \u0009  6  三、招聘条件:  1、应聘人员需为国家统招计划内全日制公办院校2019年大学本科应届毕业生(二本及以上)  2、英语取得国家四级及以上合格证书或考试成绩在425分及以上,身体健康,符合国家公务员录用体检标准,能长期在项目施工现场工作(法学,社会学除外)。  四、招聘流程  (一)应聘报名方式一:请将个人简历发送至bjdjrzb@bepc.com.cn的邮箱。邮件主题为:专业 姓名 学历 学校。个人自荐材料(个人简历)的文件名格式:“专业 姓名 学历 学校”。个人自荐材料(即个人简历)需附加盖学校公章的就业推荐表、计算机等级证书、外语等级证书、身份证、获奖证书等扫描件。  应聘报名方式二:  (二)资格审查:公司经初审后,将通过手机短信、电话等方式通知初审通过的应聘者参加面试、测试事宜。请确保联系方式填写准确,通信畅通。资格初审未通过的毕业生公司恕不另行通知。  (三)应聘者参加面试时,须携带个人自荐材料(即个人简历),附加盖学校公章的就业推荐表、计算机等级证书、外语等级证书、身份证、获奖证书等的原件和复印件。  五、联系方式  陈老师:(010)58425874/13522903460、  王老师:(010)58425979/18686136372  通讯地址:北京市朝阳区定福庄西里一号  邮政编码:100024 ","lianxiren":"王先生:15611823566"}

上面的数据是我们要导入到云开发数据库的列表数据,就是我们小程序列表页要显示的就是这些数据。所以这里大家一定要认真对待,试想,你数据都没有导入成功,哪来的后面的数据的获取和解析呢。

如果你不会导入数据到云开发数据库,那只能自己在云开发控制台自己一条条的创建了。

image.png

就像这样,点添加记录----> 输入字段 ---->创建数据 ----> 确定保存

数据少了还好,如果数据特别多,你自己就会累到吐。

如果你不会批量导入数据,或者没有数据可以批量导入 就到这个地址https://edu.csdn.net/course/detail/9604

看在线讲解视频学着怎么批量导入。


获取列表数据并解析到列表页


到这一步,就默认你上面的批量导入数据已经成功了。

那么我们就在index.js做数据请求操作。

请求云开发数据库里列表数据的核心代码如下

//从云开发数据库里列表
 getList() {
  let that = this;
  wx.cloud.callFunction({
   // 要调用的云函数名称
   name: 'getHome',
   success: res => {
    wx.stopPullDownRefresh(); //停止刷新
    // console.log(res)
    if (res.result) {
     let dataList = res.result.data;
     console.log({
      dataList
     })
     if (dataList === undefined || dataList.length == 0) {
      wx.showToast({
       title: '没有数据',
      })
     } else {
      that.setData({ //获取数据成功后的数据绑定
       isShowArticle: true,
       dataList: dataList,
      });
     }
    } else {
     wx.showToast({
      title: '没有数据',
     })
    }
   },
   fail: err => {
    wx.stopPullDownRefresh(); //停止刷新
    wx.showToast({
     title: '没有数据',
    })
   }
  })
 },

给大家讲解下,我们这里是借助里云开发提供的云函数功能来获取列表数据。为什么要这么做呢,因为小程序云开发规定,我们拿数据库里的资源,只能拿到自己的保存的数据,批量导入的数据是管理员导入的数据,不算你导入的。 这里问题就来了,我们一个列表数据比如有10条,其中只有5条是我们创建的,那么怎么拿到别人的5条呢。这时候就要借助云函数了。

我们使用云函数拿到所有的列表数据,我们云函数的位置如下


image.png

getHome是我们定义的用来获取数据列表的云函数。

云函数的创建和上传,我视频讲解里有完整的流程,大家如果文章看不懂可以去看视频讲解:https://edu.csdn.net/course/detail/9604

image.png

然后我们再解析数据,并显示到列表页

我们index.wxml代码如下

<!--index.wxml-->
<!-- 文章列表 -->
<block wx:for="{{dataList}}" wx:key="item">
 <view class='item-container' bindtap='goDetail' data-item='{{item}}'>
  <view class=' item_root '>
   <text class='item-gongsi'>{{item.gongsi}}</text>
  </view>
  <view class='item_root'>
   <text class='item-desc'>{{item.xuexiao}}</text>
   <text class='item-desc didian'>{{item.didian}}</text>
  </view>
  <view class='item_root'>
   <text class='item-desc'>{{item.shijian}}</text>
  </view>
 </view>
</block>

index.js完整代码如下

//index.js
const app = getApp()
Page({
 //页面的初始数据
 data: {
  isShowArticle: false,
  dataList: null
 },
 onShow: function() {
  this.getList();
 },
 //页面相关事件处理函数--监听用户下拉动作
 onPullDownRefresh: function() {
  this.getList();
 },
 //从云开发数据库里列表
 getList() {
  let that = this;
  wx.cloud.callFunction({
   // 要调用的云函数名称
   name: 'getHome',
   success: res => {
    wx.stopPullDownRefresh(); //停止刷新
    // console.log(res)
    if (res.result) {
     let dataList = res.result.data;
     console.log({
      dataList
     })
     if (dataList === undefined || dataList.length == 0) {
      wx.showToast({
       title: '没有数据',
      })
     } else {
      that.setData({ //获取数据成功后的数据绑定
       isShowArticle: true,
       dataList: dataList,
      });
     }
    } else {
     wx.showToast({
      title: '没有数据',
     })
    }
   },
   fail: err => {
    wx.stopPullDownRefresh(); //停止刷新
    wx.showToast({
     title: '没有数据',
    })
   }
  })
 },
 //去详情页
 goDetail: function(event) {
  var item = event.currentTarget.dataset.item;
  console.log(item);
  wx.navigateTo({
   url: '../askdetail/askdetail?id=' + item._id+"&gongsi="+item.gongsi,
  })
 }
})

这样我们就可以轻松的借助云开发实现列表页数据的定义,列表页数据的获取,列表页数据的解析了。

如果文章你感觉不太直观,可以去看视频讲解:https://edu.csdn.net/course/detail/9604

完整的源码在视频讲解里也可以下载

相关文章
|
1月前
|
JSON 前端开发 搜索推荐
关于商品详情 API 接口 JSON 格式返回数据解析的示例
本文介绍商品详情API接口返回的JSON数据解析。最外层为`product`对象,包含商品基本信息(如id、name、price)、分类信息(category)、图片(images)、属性(attributes)、用户评价(reviews)、库存(stock)和卖家信息(seller)。每个字段详细描述了商品的不同方面,帮助开发者准确提取和展示数据。具体结构和字段含义需结合实际业务需求和API文档理解。
|
28天前
|
JSON 缓存 API
解析电商商品详情API接口系列,json数据示例参考
电商商品详情API接口是电商平台的重要组成部分,提供了商品的详细信息,支持用户进行商品浏览和购买决策。通过合理的API设计和优化,可以提升系统性能和用户体验。希望本文的解析和示例能够为开发者提供参考,帮助构建高效、可靠的电商系统。
39 12
|
2月前
|
JSON Java 数据格式
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
107 25
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
|
2月前
|
XML JSON JavaScript
HttpGet 请求的响应处理:获取和解析数据
HttpGet 请求的响应处理:获取和解析数据
|
3月前
|
前端开发 Java 开发者
Spring MVC中的请求映射:@RequestMapping注解深度解析
在Spring MVC框架中,`@RequestMapping`注解是实现请求映射的关键,它将HTTP请求映射到相应的处理器方法上。本文将深入探讨`@RequestMapping`注解的工作原理、使用方法以及最佳实践,为开发者提供一份详尽的技术干货。
229 2
|
3月前
|
JSON API 数据安全/隐私保护
拍立淘按图搜索API接口返回数据的JSON格式示例
拍立淘按图搜索API接口允许用户通过上传图片来搜索相似的商品,该接口返回的通常是一个JSON格式的响应,其中包含了与上传图片相似的商品信息。以下是一个基于淘宝平台的拍立淘按图搜索API接口返回数据的JSON格式示例,同时提供对其关键字段的解释
|
3月前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
3月前
|
JSON 缓存 前端开发
PHP如何高效地处理JSON数据:从编码到解码
在现代Web开发中,JSON已成为数据交换的标准格式。本文探讨了PHP如何高效处理JSON数据,包括编码和解码的过程。通过简化数据结构、使用优化选项、缓存机制及合理设置解码参数等方法,可以显著提升JSON处理的性能,确保系统快速稳定运行。
|
4月前
|
数据采集 JSON 数据处理
抓取和分析JSON数据:使用Python构建数据处理管道
在大数据时代,电商网站如亚马逊、京东等成为数据采集的重要来源。本文介绍如何使用Python结合代理IP、多线程等技术,高效、隐秘地抓取并处理电商网站的JSON数据。通过爬虫代理服务,模拟真实用户行为,提升抓取效率和稳定性。示例代码展示了如何抓取亚马逊商品信息并进行解析。
抓取和分析JSON数据:使用Python构建数据处理管道
|
4月前
|
JSON JavaScript Java
在Java中处理JSON数据:Jackson与Gson库比较
本文介绍了JSON数据交换格式及其在Java中的应用,重点探讨了两个强大的JSON处理库——Jackson和Gson。文章详细讲解了Jackson库的核心功能,包括数据绑定、流式API和树模型,并通过示例演示了如何使用Jackson进行JSON解析和生成。最后,作者分享了一些实用的代码片段和使用技巧,帮助读者更好地理解和应用这些工具。
364 0
在Java中处理JSON数据:Jackson与Gson库比较

热门文章

最新文章

推荐镜像

更多