【Project】JS的Map对象前后交互问题
这是我在项目中写的一个Map对象:
let map = new Map(); for (let i = 0; i < type_checked_value.length; i++) {
let type_id = type_checked_value[i]
map.set('type_' + type_id + '_quantity', $("#type_" + type_id + "_quantity").val());
map.set('type_' + type_id + '_score', $("#type_" + type_id + "_score").val());
}
我天真的觉得JS自带的JSON对象就可以像Java的那些JSON转换组件一样调用即可实现转换【大雾】
let jsonMap = JSON.stringify(map);
用这个方法给后端之后就是一个空括号了,在java这里接受就是这个结果:
{}
然后找到了这个办法,可以实现JS的Map对象转换JSON
// JS map对象转换Json方法 https://blog.csdn.net/Jac__Xu/java/article/details/80969219
function mapToJson(m) {
var str = '{';
var i = 1;
m.forEach(function (item, key, mapObj) {
if(mapObj.size == i){
str += '"'+ key+'":"'+ item + '"';
}else{
str += '"'+ key+'":"'+ item + '",';
}
i++;
});
str +='}';
//console.log(str);
return str;
}
传到了后台之后就是这个效果了:
{"type_2_quantity":"2","type_3_score":"5","type_1_score":"4","type_1_quantity":"2","type_3_quantity":"3","type_2_score":"5"}
在Java这里就使用了FastJson来处理转换的:
@Test
public void parseJavaScriptMapObject(){
String json = "{\"type_2_quantity\":\"2\",\"type_3_score\":\"5\",\"type_1_score\":\"4\",\"type_1_quantity\":\"2\",\"type_3_quantity\":\"3\",\"type_2_score\":\"5\"}";
// JSON.parseObject(json);
Map map = JSON.parseObject(json); System.out.println(map); Object type_2_quantity = map.get("type_2_quantity");
System.out.println(type_2_quantity);
}
测试的结果是能取到值的
{"type_2_quantity":"2","type_3_score":"5","type_1_score":"4","type_1_quantity":"2","type_3_quantity":"3","type_2_score":"5"}
2 Process finished with exit code 0
大概就这样了,没有别的补充
【Project】JS的Map对象前后交互问题的更多相关文章
- 在js中将map对象转换成json 和 js对cookie的操作
在js中将map对象转换成json //msp转objectlet obj= Object.create(null); for (let[k,v] of map) { obj[k] = v; }//o ...
- js模拟Map对象,实现key---value
js模拟Map对象,实现key---value 根据java中map的属性,实现key----value保存 function Map() { var struct = function (key, ...
- Js中Map对象的使用
Js中Map对象的使用 1.定义 键/值对的集合. 2.语法 mapObj = new Map() 3.备注 集合中的键和值可以是任何类型.如果使用现有密钥向集合添加值,则新值会替换旧值. 4.属性 ...
- js 操作map对象
转自:http://smallvq123.javaeye.com/blog/823923 /* * Map对象,实现Map功能 * * * size() 获取Map元素个数 * isEmpty() 判 ...
- JS中的Map对象
1,js创建map对象 var map = new Map(); 2.将键值对放入map对象 map.set("key",value) map.set("key1&quo ...
- JavaScript Map对象的实现
1. [代码]js代码 /* * MAP对象,实现MAP功能 * * 接口: * size() 获取MAP元素个数 * isEmpty() 判断MAP是否为空 * clear() ...
- JS中集合对象(Array、Map、Set)及类数组对象的使用与对比
原文地址 在使用js编程的时候,常常会用到集合对象,集合对象其实是一种泛型,在js中没有明确的规定其内元素的类型,但在强类型语言譬如Java中泛型强制要求指定类型. ES6引入了iterable类型, ...
- 转:el表达式获取map对象的内容 & js中使用el表达式 & js 中使用jstl 实现 session.removeattribute
原文链接: ①EL表达式取Map,List值的总结 ②在jsp中使用el表达式通过键获得后台的一个map<Long,String>的值 ③在javascript中使用el表达式(有图有真相 ...
- js es6 map 与 原生对象区别
区别 object和Map存储的都是键值对组合.但是: object的键的类型是 字符串: map的键的类型是 可以是任意类型: 另外注意,object获取键值使用Object.keys(返回数组): ...
- JS Map对象
java和C#等高级语言中都有map这样的键值对,但是js里没有,我们需要这样的,该怎么做呢? 可以自己使用function封装一个map对象,如下所示 function Map() { this.k ...
随机推荐
- 记一次 .NET某工控视觉自动化系统 卡死分析
一:背景 1. 讲故事 今天分享的dump是训练营里一位学员的,从一个啥也不会到现在分析的有模有样,真的是看他成长起来的,调试技术学会了就是真真实实自己的,话不多说,上windbg说话. 二:WinD ...
- 分布式定理--CAP定理
cap定理指的是,在一个分布式系统中,只能满足cap中的两项. C consistency 一致性 A availability 可用性 P partition tolerance 分区可容错性 -- ...
- 已经有 Prometheus 了,还需要夜莺?
谈起当下监控,Prometheus 无疑是最火的项目,如果只是监控机器.网络设备,Zabbix 尚可一战,如果既要监控设备又要监控应用程序.Kubernetes 等基础设施,Prometheus 就是 ...
- IDEA生成类和方法注释模板详细说明 绝对好用
吐槽 今天心血来潮,将使用了很久的IDEA旗舰版卸载了,想换社区版用一段时间,毕竟社区版开源免费.精简不卡顿,如果够用的话以后就省去了破解的烦恼,而且可以紧跟官网使用最新版 旧的IDEA配置忘记保存了 ...
- Lecture1
Smiling & Weeping ---- 总是要耗尽所有期待,才舍得离开 第一章 Git简介 1.1 版本控制 1.1.1 什么是版本控制系统? 大家平常有没有遇到这种情况: 我们的初始代 ...
- 实验四:WinRAR漏洞
[实验目的] 通过打开rar文件,获取到目标机shell. [知识点] winrar漏洞 [实验原理] 该漏洞是由于WinRAR所使用的一个陈旧的动态链接库UNACEV2.dll所造成的,该动态链接库 ...
- CLR via C# 笔记 -- 枚举(15)
1. 枚举继承System.Enum,后者继承 System.ValueType,所以枚举是值类型. 2. 枚举不能定义任何方法.属性和事件,不过可以定义扩展方法 3. ToString()方法 Co ...
- 算法金 | 没有思考过 Embedding,不足以谈 AI
大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 抱个拳,送个礼 在当今的人工智能(AI)领域,Embedding 是一个不可或缺的概念 ...
- Linux 内核:sysfs 有关的API
背景 相关文章:1.sysfs与kobject基类 下面内容基本上参考(有删改):https://blog.csdn.net/qb_2008/article/details/6846412 API a ...
- 在Linux驱动中使用LED子系统
在Linux驱动中使用LED子系统 原文:https://blog.csdn.net/hanp_linux/article/details/79037684 前提配置device driver下面的L ...