【发布时间】:2017-11-28 03:42:45
【问题描述】:
我的 REST 控制器需要以下格式的请求输入,它成功地将其转换为包含 Map 和 String 作为参数的 Java 对象:
{
"myMap" : {
"key1": "value1",
"key2": "value2",
"key3": "value3"},
"myString": "string value"
}
我从 html 表单中获取数据,如下所示:
var myMap = new Map();
var String = document.getElementById('String').value;
for (var i = 0 ; i<anArray.length ; i++){
var input = document.getElementsByClassName('input_' + (i+1));
for (var j = 0 ; j<3 ; j++){
if (input[j].checked){
myMap.set(input[j].name, input[j].id);
}
}
}
基本上,这段代码归结为:
var myMap = new Map();
myMap.set("key1", "value1");
myMap.set("key2", "value2");
myMap.set("key3", "value3");
这会产生一个包含 {key1 => value1, key2 => value2, etc} 和一个字符串的映射。我一直在尝试将它变成这样的 json 字符串,但它似乎不起作用:
var myJson = {};
myJson.myMap = myMap;
myJson.myString = myString;
var json = JSON.stringify(myJson);
但是,我最终得到以下字符串: `{"myMap":{},"String":"myString"}' 。所以我可能不得不做一些不同的事情来对地图进行字符串化,但我尝试的任何方法都不起作用。
谁能帮帮我?
【问题讨论】:
-
repetitie是什么?另请提供minimal reproducible example -
对不起。忘记改了,我改成了myMap
-
人们可能会在他们真正想要的时候登陆这个页面:
const obj1 = Object.fromEntries(map1);,这对我来说是最好的答案。 stackoverflow.com/a/55537385/470749
标签: javascript json