Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.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数组放入具有相同键名的对象中_Javascript_Arrays - Fatal编程技术网

将javascript数组放入具有相同键名的对象中

将javascript数组放入具有相同键名的对象中,javascript,arrays,Javascript,Arrays,我有一个不寻常的问题要解决。我有一个guid数组 [ "c01f8237-72c8-4fa6-9c53-1915750385aa", "2c8a471b-c408-436c-81b1-3f3867d8ffb4", "27a44d46-12bd-4784-ceed-57ada31b0e33" ] 此阵列必须转换为: { id: "c01f8237-72c8-4fa6-9c53-1915750385aa", id: "2c8a471b-c408-436c-81b1

我有一个不寻常的问题要解决。我有一个guid数组

[
 "c01f8237-72c8-4fa6-9c53-1915750385aa",
 "2c8a471b-c408-436c-81b1-3f3867d8ffb4",
 "27a44d46-12bd-4784-ceed-57ada31b0e33"
] 
此阵列必须转换为:

   {
     id: "c01f8237-72c8-4fa6-9c53-1915750385aa",
     id: "2c8a471b-c408-436c-81b1-3f3867d8ffb4",
     id: "27a44d46-12bd-4784-ceed-57ada31b0e33"
   } 
我知道不应该这样做,但不幸的是无法控制后端部分。有什么想法吗


感谢

字典键的全部意义在于它唯一地映射到某个值。您想要的输出试图复制一个键,因此既不可能也没有意义


如果您按照您的建议将其传递到后端,那么当然可以手动构建一个字符串,通过复制有效负载中的键的线路传递,但是您无法首先在JavaScript中实际执行此操作。您必须手动生成字符串


还请注意,您可以随意调用此格式,但不能将其称为JSON,也不能使用JSON库来构建它,因为它不是JSON。如果您的API需要自定义格式,那么您需要编写代码来构建该自定义格式。

字典键的关键在于它唯一地映射到某个值。您想要的输出试图复制一个键,因此既不可能也没有意义


如果您按照您的建议将其传递到后端,那么当然可以手动构建一个字符串,通过复制有效负载中的键的线路传递,但是您无法首先在JavaScript中实际执行此操作。您必须手动生成字符串


还请注意,您可以随意调用此格式,但不能将其称为JSON,也不能使用JSON库来构建它,因为它不是JSON。如果您的API需要自定义格式,那么您需要编写代码来构建该自定义格式。

如果您只需要一个字符串,请执行以下操作

var str = '{' + idArray.map(function(id) { 
       return "id: "+id
   }).join(',\n')+'}';

我不知道你会用什么mime类型,因为它不是有效的JSON

var str = '{' + idArray.map(function(id) { 
       return "id: "+id
   }).join(',\n')+'}';

我不知道你会使用什么mime类型,因为它不是有效的JSON。

同一个键不能存在于对象中,我非常清楚这一点。但正如我在问题中所说的,不幸的是,接收对象的后端没有以标准方式构建,我无法更改它。@Mauro74他的意思是,在javascript中这是不可能的。然而,您的后端到底期望什么?后端需要序列化格式,而不是javascript。以上内容不是有效的JSON,不需要JSON吗?因此您不希望将其转换为对象,而是序列化为该形式的字符串。如果是这样的话,这似乎是一项非常简单的任务。问题是什么?听起来后端并不是真的需要JSON,但实际上只是使用了一些简单的东西,比如String.split来构建一个数组,然后循环。如果是这样的话,你就无法使用字符串连接来构建输入。我非常清楚,同一个键在对象中不可能存在。但正如我在问题中所说的,不幸的是,接收对象的后端没有以标准方式构建,我无法更改它。@Mauro74他的意思是,在javascript中这是不可能的。然而,您的后端到底期望什么?后端需要序列化格式,而不是javascript。以上内容不是有效的JSON,不需要JSON吗?因此您不希望将其转换为对象,而是序列化为该形式的字符串。如果是这样的话,这似乎是一项非常简单的任务。问题是什么?听起来后端并不是真的需要JSON,但实际上只是使用了一些简单的东西,比如String.split来构建一个数组,然后循环。如果是这样的话,你就不得不使用字符串连接来构建输入。我很清楚这一点。但正如我在问题中所说,不幸的是,接收对象的后端没有以标准方式构建,我无法对其进行更改。如果要将其传递到后端,那么当然可以手动构建一个字符串,通过复制JSON有效负载中键的连线传递,但你不可能先用JavaScript来实现,我很清楚这一点。但正如我在问题中所说,不幸的是,接收对象的后端没有以标准方式构建,我无法对其进行更改。如果要将其传递到后端,那么当然可以手动构建一个字符串,通过复制JSON有效负载中键的连线传递,但您不能首先在JavaScript中实际执行此操作。或者:str='{id:'+idArray.join',id:'+'}'可能只是文本/纯MIME。您在结果中缺少了id周围的引号。这回答了这个问题,可能是非理性的,也可能只是:str='{id:'+idArray.join',id:'+'}'可能只是文本/纯MIME。结果中缺少了ID周围的引号。这回答了这个问题,可能是不理智的