2016-06-15 37 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])

這似乎很簡單,現在我已經得到了答案,但是我完全得到了隧道視覺試圖將整個對象而不僅僅是該屬性串聯起來。