[DEBUG] springboot: map数据在js和java中的传递和转换

更多技术文章请访问我的博客园账户:点击这里

那边会更新有关生物信息学,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 dataMap = (Map)JSONUtils.parse(rawData);


补充知识:

对于js中的map类型,

// 获取key的个数

Object.keys(mapData).length

// 遍历map

for (item in mapData) {

    console.log(mapData[item])

}

// 删除,不加括号也可以

delete(mapData[key])

你可能感兴趣的:([DEBUG] springboot: map数据在js和java中的传递和转换)