我有一个json对象,当它在客户端和服务器端传递请求参数时,json字符串正在从 space 字符中断开。
前:
{"id":100,"age":15,"name":"sample string"}
当它来到 request.getParameter()时显示如下
{"id":100,"age":15,"name":"sample
JAVASCRIPT
var location='MyAction.do?method=myMethod';
var form = '<input type="hidden" name="transactionId" value="'+getSession()+'" /><input type="hidden" name="myInfo" value='+JSON.stringify(myInfo)+' />';
$('<form action="' + location + '" method="POST">' + form + '</form>').appendTo($(document.body)).submit();
JAVA
String myInfo = request.getParameter("myInfo");
这只发生在有空格字符的信息字符串时。我可以得到完整的字符串吗?
感谢。
答案 0 :(得分:1)
您可以对值进行编码
value='+JSON.stringify(myInfo)+'
这将为原始字符串提供空格等。您可以使用内置的encodeURIComponent(string)
方法对字符串进行编码
var myInfo = {"id":100,"age":15,"name":"sample string"};
encodeURIComponent(JSON.stringify(myInfo));
这将返回编码的字符串。这不包含任何可能混淆浏览器的符号( { } [space] &amp; ?等)
%7B%22id%22%3A100%2C%22age%22%3A15%2C%22name%22%3A%22sample%20string%22%7D
然后,您可以使用decodeURIComponent(string)
var request_value = decodeURIComponent('%7B%22id%22%3A100%2C%22age%22%3A15%2C%22name%22%3A%22sample%20string%22%7D');
JSON.parse(request_value);