将JS数组转换为JSON数组

时间:2016-06-15 15:36:24

标签: javascript ruby-on-rails json javascript-objects

我有一个带有数组属性的js对象,如下所示:

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

我通过ajax调用将其传递给rails端点,并将其保存到我的数据库中。问题是我需要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"]
            }
        ]

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

我确定我在这里遗漏了一些东西,感谢任何帮助

1 个答案:

答案 0 :(得分:3)

感谢@Mike C的评论,这就是我最终做的事情:

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

然后只在铁路边JSON.parse(params[:options])

这似乎很疯狂,因为我有答案,但我完全得到了隧道视觉,试图将整个对象字符串化而不仅仅是该属性。