Javascript 如何将数字映射到JSON中的文本?
在JSON中将数字映射为文本时,最佳做法是什么?A将是完美的,因为我可以使用数字作为键,而我不能使用对象: 。。。等等然而,据我所知,你不能在json中使用映射。最好的选择真的只是使用一组数组吗?Javascript 如何将数字映射到JSON中的文本?,javascript,json,Javascript,Json,在JSON中将数字映射为文本时,最佳做法是什么?A将是完美的,因为我可以使用数字作为键,而我不能使用对象: 。。。等等然而,据我所知,你不能在json中使用映射。最好的选择真的只是使用一组数组吗? 您可以只使用字符串值“1”、“2”等作为JSON文件中的键,然后调用parseInt来获取数字值。然后可以编写一个函数,将导入的JSON文件转换为映射。差不多 function JSONtoMap(src){ var m = new Map(); for(var key in src)
您可以只使用字符串值“1”、“2”等作为JSON文件中的键,然后调用
parseInt
来获取数字值。然后可以编写一个函数,将导入的JSON文件转换为映射。差不多
function JSONtoMap(src){
var m = new Map();
for(var key in src)
m.set(parseInt(key), src[key])
return m;
}
您可以只使用字符串值“1”、“2”等作为JSON文件中的键,然后调用
parseInt
来获取数字值。然后可以编写一个函数,将导入的JSON文件转换为映射。差不多
function JSONtoMap(src){
var m = new Map();
for(var key in src)
m.set(parseInt(key), src[key])
return m;
}
JSON代表“JavaScript对象表示法”,是JavaScript的子集——特别是用于写出对象的子集。您正在键入的贴图将创建一个对象。map.set
函数输出的对象就是您所得到的对象。你可以通过这样做看到它
let map = new Map();
map.set(1, 'describe 1');
map.set(2, 'describe 2');
console.log(JSON.stringify(map));
我认为您希望数字是字符串,在这种情况下,您可以这样做:
let map = new Map();
map.set('1', 'describe 1');
map.set('2', 'describe 2');
但是,如果您的数字用于标识数组中项目的索引,则可能需要执行以下操作:
[null,‘描述1’、‘描述2’]
无论哪种方式,您都可以通过JSON.stringify
关于更多证据,以下是Chrome通过您的输入输出的内容:
> let map = new Map();
undefined
> map.set(1, 'describe 1');
Map {1 => "describe 1"}
> map.set(2, 'describe 1');
Map {1 => "describe 1", 2 => "describe 1"}
这看起来像:
{1:'描述1',2:'描述2'}
作为Javascript对象(即JSON)
有关JSON的更多信息,请查看JSON代表“JavaScript对象表示法”,它是JavaScript的子集,特别是用于写出对象的子集。您正在键入的贴图将创建一个对象。map.set
函数输出的对象就是您所得到的对象。你可以通过这样做看到它
let map = new Map();
map.set(1, 'describe 1');
map.set(2, 'describe 2');
console.log(JSON.stringify(map));
我认为您希望数字是字符串,在这种情况下,您可以这样做:
let map = new Map();
map.set('1', 'describe 1');
map.set('2', 'describe 2');
但是,如果您的数字用于标识数组中项目的索引,则可能需要执行以下操作:
[null,‘描述1’、‘描述2’]
无论哪种方式,您都可以通过JSON.stringify
关于更多证据,以下是Chrome通过您的输入输出的内容:
> let map = new Map();
undefined
> map.set(1, 'describe 1');
Map {1 => "describe 1"}
> map.set(2, 'describe 1');
Map {1 => "describe 1", 2 => "describe 1"}
这看起来像:
{1:'描述1',2:'描述2'}
作为Javascript对象(即JSON)
有关JSON的更多信息,请查看有几种方法可以在JSON中使用 使用一个带有数字的对象,并将其转换为字符串,作为键(如上韦斯顿所述):
{'1':'descripe1','2':'descripe2'}
或者文本作为键的对象:{'descripe1':1,'descripe2':2}
或者创建一个数组,使索引与数组中该位置的文本匹配:
[,'descripe 1','descripe 2']
有几种方法可以在JSON中实现这一点
使用一个带有数字的对象,并将其转换为字符串,作为键(如上韦斯顿所述):{'1':'descripe1','2':'descripe2'}
或者文本作为键的对象:{'descripe1':1,'descripe2':2}
或者创建一个数组,使索引与数组中该位置的文本配对的数字相匹配:
[,'descripe 1','descripe 2']
您是否正在尝试将字符串数组转换为每个字符串都有数字键的json对象?否,我正在处理某些项目的评分,并且有与这些评分相对应的描述。所以,如果我能使用一张地图,做一些像descriptions.get(score)这样的事情,那就太好了
要检索描述…是否尝试将字符串数组转换为每个字符串都有数字键的json对象?否,我正在处理某些项目的评分,并且有与这些评分相对应的描述。因此,如果我可以使用地图并执行类似于描述的操作,那就太好了。获取(分数)
以检索描述…感谢您的完整解释,这正是我想要的!挑剔:JSON表示JavaScript对象表示法。@GregBurghardt wierd,他们把它改回来了。他们在那个名字上来回翻动了一会儿。我会更正我的答案。谢谢你的充分解释。这正是我想要的!挑剔:JSON表示JavaScript对象表示法。@GregBurghardt wierd,他们把它改回来了。他们在那个名字上来回翻动了一会儿。我会更正我的答案。