更多技术文章请访问我的博客园账户:点击这里
那边会更新有关生物信息学,java Web,统计学理论和一些杂七杂八的记录:)
leetcode刷题记录争取日更(github):点击这里
部分敏感信息已打码。不提供完整代码,欢迎评论、交流。
问题描述:
js从前端页面接收数据,如果数据类型不同,则相关联的子数据的类型、长度、值等都不同。考虑在js中用map接收,再转为json string,然后在后台解码成Map。
解决方案:
js:
var mapData = {}; // 初始化
mapData["startTime"] = date1; // 添加数据
mapData["endTime"] = date2;
var passData = new FormData();
passData.append("passData", JSON.stringify(mapData)); // 变成json string
// 然后就可以用$.ajax提交到后台了
后台接收(java):
public 返回值 listSearchResult(@RequestParam("passData")String rawData) {}
打印出来是这样的字符串:
{"startTime":"2020-05-01 00:00:00","endTime":"2020-05-06 00:00:00"}
可以直接转为map:
Map<String, String> dataMap = (Map<String, String>)JSONUtils.parse(rawData);
补充知识:
对于js中的map类型,
// 获取key的个数
Object.keys(mapData).length
// 遍历map
for (item in mapData) {
console.log(mapData[item])
}
// 删除,不加括号也可以
delete(mapData[key])