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:"发送成功"});
    } 
  }

  1. 后台接收数组,一个简单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");
            }
        }
    }
  1. 小程序端自己写的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();
            } 
        }
      });
    })
}

你可能感兴趣的:(微信小程序)