获取json字符串请求参数

时间:2015-06-30 03:54:41

标签: javascript java json request

我有一个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");

这只发生在有空格字符的信息字符串时。我可以得到完整的字符串吗?

感谢。

1 个答案:

答案 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);