Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将数字映射到JSON中的文本?_Javascript_Json - Fatal编程技术网

Javascript 如何将数字映射到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)

在JSON中将数字映射为文本时,最佳做法是什么?A将是完美的,因为我可以使用数字作为键,而我不能使用对象:

。。。等等然而,据我所知,你不能在json中使用映射。最好的选择真的只是使用一组数组吗?


您可以只使用字符串值“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,他们把它改回来了。他们在那个名字上来回翻动了一会儿。我会更正我的答案。