我有一个带有数组属性的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
对象构建一个数组,但我似乎无法删除根0
和1
属性
我确定我在这里遗漏了一些东西,感谢任何帮助
答案 0 :(得分:3)
感谢@Mike C的评论,这就是我最终做的事情:
response.options = JSON.stringify(response.options);
然后只在铁路边JSON.parse(params[:options])
。
这似乎很疯狂,因为我有答案,但我完全得到了隧道视觉,试图将整个对象字符串化而不仅仅是该属性。