javascript中映射对象的字符串

javascript中映射对象的字符串,javascript,Javascript,var-map=newmap(); map.set('key1','value1'); map.set('key2','value2'); 控制台日志(map); log(map.toString()); log(JSON.parse(map.toString())) //未捕获的语法错误:JSON中位置1处出现意外的标记o,这是因为map.toString()打印的是JSON.parse无法解析的[object map] 您应该使用JSON.stringify来实现您的目标 正稿 var ma

var-map=newmap();
map.set('key1','value1');
map.set('key2','value2');
控制台日志(map);
log(map.toString());
log(JSON.parse(map.toString()))

//未捕获的语法错误:JSON中位置1处出现意外的标记o,这是因为map.toString()打印的是JSON.parse无法解析的
[object map]

您应该使用
JSON.stringify
来实现您的目标

正稿
var map=new map().set('key1','value1')
.set('key2','value2');
控制台日志(map);
//由于基础类型是数组,因此需要展开[…映射]
log(JSON.stringify([…map]);

map2=newmap(JSON.parse(JSON.stringify([…Map]))
要存储字符串化结果,最好使用纯JSON对象,但是使用
Map
可以创建一个条目数组并将其字符串化

var str = JSON.stringify(Array.from( map.entries()));
然后再次将JSON字符串解析为数组,并构造一个新的
Map

var map = new Map(JSON.parse(str))
var map1=newmap();
map1.set('key1','value1');
map1.set('key2','value2');
var str=JSON.stringify(Array.from(map1.entries());
//将字符串存储在某个位置或传递给某人
//或者你想拿什么就拿什么
//重新构建地图
var map2=新映射(JSON.parse(str))
console.log('key1',map2.get('key1');
console.log('key2',map2.get('key2')
var-map=newmap();
map.set('key1','value1');
map.set('key2','value2');
控制台日志(map);
//将映射对象转换为JSON对象
var jsonObj=[];
map.forEach(函数(val,key){
var tempObj={};
tempObj[key]=val;
jsonObj.push(tempObj)
})
log(JSON.stringify(jsonObj));
log(JSON.parse(JSON.stringify(jsonObj)))

//未捕获的语法错误:JSON中位于位置1的意外标记o
“未捕获的语法错误:JSON中位于位置1的意外标记o”表示您试图解析的内容通常是
[object object]
,但在本例中是
[object Map]
。这
[object Map]
是有效的JSON吗?提示:如果它说“
[object Map]
“,那里没有隐藏任何更神奇的信息。”
[object Map]
”是您试图在此处解析的字符串,显然您永远无法从中获得
value1
value2
。@Rajesh如何再次对字符串执行此操作?我只尝试使用JSON。parseMap与JSON不兼容,这是因为键可以是任何东西,包括对象等。如果您使用简单的键值/对,使用
Object.create(null)可能更容易
相反。我更正了它。虽然它强调了这不起作用…这会导致一个空对象…这有什么用处:pjust edited now,抱歉你太快了伙计们:D:D:D,请删除downvote,现在它几乎被更正了…结果是一个数组,而不是一个映射。我对Javascript感到惊讶一次,这几乎是有效的英语…“JSON stringify array from map entries”。很好的解决方案,我建议您将其制作成一个片段。哦,当然,让我来编辑。这将对其他人更有帮助:)