asderfzxcd
2017-07-19 03:27
采纳率: 4.8%
浏览 4.3k

json数据+号变成空格,怎么办

前端将数据封装成json传到后端,+号变成了空格,应该怎么解决

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • 就是哥 2017-07-19 03:32

    加上转义字符"+"

    点赞 打赏 评论
  • 就是哥 2017-07-19 03:33

    加上转义字符+

    点赞 打赏 评论
  • KiterCher 2017-07-19 03:47

    '+' 字符在js传到后台的时候 都会被转义为' ' 的,所以可以将json字符串进行Base64转码之后再传到后台,安全性高一点,需要导入base64.js包代码如下:

         var  jsonStr = JSON.stringify(json)
         var base = new Base64();
         var jsonbase = base.encode(jsonStr)
         //这样就把json数据转码成为了base64字符串,将这个字符串做参数传到后台就行了,就避免了'+'被转义为' ' 
    

    然后后台需要对base64字符串进行解码,代码如下:

                String jsonbase = request.getParameter("jsonbase");
                String pars = new String(Base64.decodeBase64(par), "UTF-8");
                HashMap<String, Object> map = (HashMap<String, Object>) JSON
                        .parse(pars);
                //这里就可以取到json里面的数据了。
    
    点赞 打赏 评论
  • encodeURIComponent编码下发送的数据

    点赞 打赏 评论
  • Himly_Zhang 2017-07-19 06:33

    把加号直接换成%2B

    点赞 打赏 评论

相关推荐 更多相似问题