一:跳转传参数 传对象
分享者:幼年程序猿,原文地址
一般都是传字符串到下一页,如果要想传对象怎么办呢?
我的解决办法是先将对象转换为json字符串然后到下个页面将json字符串,再转化为对象。如下:
-
let str=JSON.stringify(e.currentTarget.dataset.item);
-
wx.navigateTo({
-
url: '../toMybaby/babyDetail/babyDetail?jsonStr='+str,
-
success: function (res) {
-
// success
-
},
-
fail: function () {
-
// fail
-
},
-
complete: function () {
-
// complete
-
}
-
})
-
onLoad:function(options){
-
// 生命周期函数--监听页面加载
-
let item=JSON.parse(options.jsonStr);
-
this.setData({ward:item});
-
},
二:wx.request的json数据传输
分享者:微风&细雨,原文地址 wx.request使用
代码如下:
-
wx.request({
-
url: 'https://192.168.191.1:8443/vocation/bbb',
-
data: {name:"111",password:"123",id:"123"},
-
method: 'post', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
-
// header: {}, // 设置请求的 header
-
// dataType:JSON,//该语句会将服务器端的数据自动转为string类型
-
success: function(res){
-
// success
-
console.log("返回数据为:"+res.data.employees[1].firstName);
-
console.log('submit success');
-
},
-
fail: function() {
-
// fail
-
console.log('submit fail');
-
},
-
complete: function() {
-
// complete
-
console.log('submit comlete');
-
}
-
})
服务器端的代码:
-
JSONObject jsonObject = JSONObject.fromObject(getRequestPayload(request));
-
String name=jsonObject.get("name").toString();
-
String password=jsonObject.get("password").toString();
-
String s = "";
-
response.setContentType("application/json;charset=utf-8");
-
response.setHeader("Access-Control-Allow-Origin", "*");
-
System.out.println(name + " " + password);
-
s = "{\"employees\": [{ \"firstName\":\"John\" , \"lastName\":\"Doe\" },{ \"firstName\":\"Anna\" , \"lastName\":\"Smith\" },{ \"firstName\":\"Peter\" , \"lastName\":\"Jones\" }]}";
-
response.getWriter().write(s);
数据传送到微信端是[object object]的形式,因此直接可以通过res.data.employees1.firstName获得对象的数据
结果如下: