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();
            } 
        }
      });
    })
}
经验分享 程序员 微信小程序 职场和发展