1分钟解决小程序前端与java后台的数组传递
1.小程序前端: goodlist里就是放了数据的数组,不必要的代码已经全删了,单纯的一个小程序前端的数组传递给后台的Demo,Post请求头必须一样(官方限制)。
import { request } from "../../request/index.js";//自己写的request 用的时候导入 //点击支付 async handlerOrderPay(){ const cart = this.data.cart; let goodsList=[]; cart.forEach(v=>goodsList.push({ goods_id:v.id, goods_number:v.num, goods_price:v.subTitle })); const orderParams = {goodsList}; //请求头必须是这样子的 必须 必须 const header = { content-type: application/x-www-form-urlencoded }; //发送请求 **这里用的是自己写的request** http://localhost:8081/v1/api/order/create const {data} = await request({url:"/order/create",method:"POST",data:orderParams,header:header}); if (data.data.length>9) { await showToast({title:"发送成功"}); } }
- 后台接收数组,一个简单Demo,依赖的是阿里的fastjson包
@ResponseBody @PostMapping("/create") public void GetOrder(@RequestParam("goodsList") String goodsList){ if(StringUtils.isNotEmpty(goodsList)){ JSONArray createArray=JSONArray.parseArray(goodsList); for(int i=0;i<createArray.size();i++){ Long goods_id=JSONObject.parseObject(JSONObject.toJSONString(createArray.get(i))).getLong("goods_id"); String goods_number=JSONObject.parseObject(JSONObject.toJSONString(createArray.get(i))).getString("goods_number"); String goods_price=JSONObject.parseObject(JSONObject.toJSONString(createArray.get(i))).getString("goods_price"); } } }
- 小程序端自己写的request
//同时发送异步代码的次数 let ajaxTimes = 0; export const request=(params)=>{ //每次请求加一次 ajaxTimes++; //显示加载中效果 wx.showLoading({ title: "加载中", mask: true, }); //定义公共的url const baseUrl = "http://localhost:8081/v1/api"; return new Promise((resolve,reject)=>{ wx.request({ ...params, url:baseUrl+params.url, success:(result)=>{ resolve(result); }, fail:(err)=>{ reject(err) }, complete: ()=>{ //每次请求减去一次 ajaxTimes--; if(ajaxTimes===0){ //关闭正在等待加载的图标 wx.hideLoading(); } } }); }) }
上一篇:
uniapp开发微信小程序-2.页面制作
下一篇:
使用脚手架创建uni-app项目