2016-06-15 40 views
-1

我有创建一个数组属性一个js对象,如下所示:转换JS数组转换成JSON数组

response.options = []; 
response.options.push({ 
    name: 'color', 
    nodes: this.colourNodes 
    }, { 
    name: 'size', 
    nodes: this.sizeNodes 
}); 

我传送到一个轨道端点通过Ajax调用,并将其保存到我的数据库。问题是,我需要的JSON是一个数组,但目前,它看起来像这样:

"options": { 
     "0": { 
      "name": "color", 
      "nodes": ["node1","node2","node3"] 
     }, 
     "1": { 
      "name": "size", 
      "nodes": ["node1","node2","node3"] 
     } 
    } 

我知道JS数组实际上只是对象这也是为什么上述情况发生,但我似乎无法图出一个干净的方式来操纵无论是JS或Rails代码来获得这个代替:

"options": [ 
      { 
       "name": "color", 
       "nodes": ["node1","node2","node3"] 
      }, 
      { 
       "name": "size", 
       "nodes": ["node1","node2","node3"] 
      } 
     ] 

我认为最简单的解决方案可能只是构建一个数组出轨options的对象,但我似乎无法到删除根01属性。

我敢肯定,我在这里失去了一些东西,任何帮助表示赞赏

+1

['JSON.stringify'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify)? –

+0

我曾试着做过整个响应对象的JSON.stringify,它让我在rails边有各种各样的问题,但它好像只是将选项属性串化并在另一边解析它, 。谢谢! – Pabs123

回答

3

感谢@Mike下他的意见,这是我落得这样做:

response.options = JSON.stringify(response.options);

然后在轨道上只有JSON.parse(params[:options])

这似乎很简单,现在我已经得到了答案,但是我完全得到了隧道视觉试图将整个对象而不仅仅是该属性串联起来。