JSON.parse()出錯解決

weixin_34162695發表於2018-08-07

在做微信小程式時遇到的問題,記錄一下。

需求:

將購物車頁面的商品資訊通過url傳到確認訂單頁
複製程式碼

購物車頁面處理過程:

在購物車頁面,處理商品資訊組裝成如下形式:
goodsInfoArr = [{"GoodsId":"12","GoodsImg":"http://a.example.com/xx/?sss/fgfg","GoodsTitle":"這裡是title"}]
GoodsImg的url是後端傳過來的商品圖片的url形式
然後,將這個商品資訊的陣列通過JSON.stringify()轉化成字串,放在頁面的url中傳過去
goodsInfoStr = JSON.stringify(goodsInfoArr);
wx.navigateTo({
  url: 'test?goodsInfo=goodsInfoStr'
})
複製程式碼

確認訂單頁面處理過程:

在確認訂單頁面拿到url上的goosInfoStr之後,我們開始用JSON.parse(goosInfoStr)來解析這個資料
複製程式碼

此時,問題來了,頁面報錯了,原因是 img的地址裡面 ?被截斷了

解決方法

只要在購物車頁面用encodeURIComponent()對goodsImg的url進行編碼,然後在確認訂單頁利用decodeURIComponent()對url進行解碼就可以了
goodsInfoArr = [{
    "GoodsId":"12",
    "GoodsImg":encodeURIComponent("http://a.example.com/xx/?sss/fgfg"),
    "GoodsTitle":"這裡是title"
}]

JSON.parse(goodsInfoArr)
 然後用的時候就 decodeURIComponent(goodsInfoArr.GoodsImg)就可以了
複製程式碼

相關文章