我在javascript中有一个json对象,
filters = Object {assetType: "CAR~LIGHT TRUCK", bodyType: "SEDAN~SPORT UTIL"}
我需要在查询字符串中传递这些值以及另外5个字符串值。
url = '/starHome/exportToCsv/'+tier+'/?period='+period+'&level2='+level2+'&level3='+level3+'&level4='+level4+'&filters='+filters;
window.location.href = url;
当我试图在控制器中获取过滤器参数值时
request.getparamter("filters");
我收到“[object object]
”
如何将此值传递给控制器? 我有一个包含所有这些字段的pojo类。我可以使用那个班级吗?。
答案 0 :(得分:2)
您可以在base64中对json字符串进行编码,然后在url中使用它:
https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/btoa
答案 1 :(得分:1)
您可以使用jQuery.param()
{
"appenders": [
{
"type": "clustered",
"appenders": [
{
"type": "file",
"filename": "log/app.log",
"maxLogSize": 10485760,
"numBackups": 3
},
{
"type": "logLevelFilter",
"level": "WARN",
"appender": {
"type": "file",
"filename": "log/warnings.log"
}
},
{
"type": "logLevelFilter",
"level": "ERROR",
"appender": {
"type": "file",
"filename": "log/errors.log"
}
}
]
}
]
}
答案 2 :(得分:1)
到目前为止,我发现以下是使用Javasript
的最佳解决方案var a = {a:'foo',b:[1,2,3],g: {q:"8798"}};
var b = window.btoa(JSON.stringify(a));
console.log(b) // output eyJhIjoiZm9vIiwiYiI6WzEsMiwzXSwiZyI6eyJxIjoiODc5OCJ9fQ
// restore b again
console.log(JSON.parse(window.atob(b))); // output : {a:'foo',b:[1,2,3],g: {q:"8798"}}
答案 3 :(得分:0)
谢谢大家,
我使用过JSON.stringify(filters);
并在控制器
String filtersString = request.getParameter("filters");
Map<String,Object> result = new ObjectMapper().readValue(filtersString, HashMap.class);
如果有更好的方法,请回复。