我搜索了JSON和HashMap,有很多关于"如何将json转换为hashmap"的问题。所以,它们是不同的,我如何在js中使用hashmap?
答案 0 :(得分:2)
简短回答是“不”,因为JSON只是一种交换格式,可以作为JavaScript对象编写和解析。如果你想要一个类似哈希映射的东西,你可能只会使用一个Object
not-so-primitive,分别定义和删除键或值:
var mapObj = {};
mapObj[key] = 'value';
delete mapObj[key];
还有Map
对象可能适合这种用途,在ES6中是新的:
var mapObj = new Map();
mapObj.set('key','value');
mapObj.get('key');
mapObj.delete('key');
您可以通过调用stringify
对其进行序列化,然后再次parse
:
var stringJSON = JSON.stringify(mapObj); // check your object structure for serializability!
var objsJSON = JSON.parse(stringJSON);
序列化Map
有点不同。如果是可序列化的,则无论如何都可以使用Array.from()
和entries()
:
var strMap = JSON.stringify(Array.from(mapObj.entries()));
var mapObj = new Map(JSON.parse(strMap));
答案 1 :(得分:0)
Wikipedia article明确指出JSON
只是文字:
[JSON]使用人类可读的文本传输数据对象
JSON
存储在Javascript中的字符串中。 Javascript对象are essentially hashmaps。您可以使用JSON.parse()
将JSON
字符串转换为对象。