2012-11-06 195 views
0

我在將數組轉換爲Json對象時遇到問題。我有一個包含json對象/對象的數組,當我將該數組轉換爲Json對象時,它將數組數據與生成json數組進行組合/連接。 讓我們假設數組有兩個json對象。當我將其轉換成使用將數組轉換成json對象?

var jsondata = JSON.stringify(array); 
var jsn = JSON.parse(jsondata); 

這裏JSON對象是我的代碼:

var array = new Array(); 

function addBatch(){ 
var data = $.toJSON($('#risk').serializeArray()); 
    //data = [{"name":"user","value":"INCRE"},{"name":"period","value":"100"},{"name":"hori","value":"12"},{"name":"conf","value":"32"}] 


    var jsonData = JSON.stringify(data); 
    var json=JSON.parse(jsonData); 
    console.log('After Converting Json'); 

    //store data in array 
    array.push(json); 
} 

// function that convert array into json: 
function saveBatch(){ 
       var jsonData = JSON.stringify(array); 
     json = JSON.parse(jsonData); 
     console.log("Batch: "+json); 

} 

它給我下面的輸出:

[{"name":"user","value":"HIST"},{"name":"period","value":"12"},{"name":"hori","value":"32"},{"name":"conf","value":"12"}],[{"name":"user1","value":"INCRE"},{"name":"period","value":"12"},{"name":"hori","value":"32"},{"name":"conf","value":"12"}] 

它應該是這樣的:

[ 
    [ 
     {"name":"obj1"},{"value":"data"} 
    ], 
    [ 
     {"name":"obj2"},{"value":"data2"} 
    ] 

]

不知道爲什麼會發生這種情況。我在谷歌上搜索,但我沒有找到任何方式,除了

var jsondata = JSON.stringify(array); 
    var jsn = JSON.parse(jsondata); 
+3

「json對象」並不意味着什麼。 –

+2

'JSON.stringify'應該不可能給出你輸出的輸出。請提供完整的測試案例(其中包含原始數據)。 – Quentin

+0

你能告訴我們你的輸入JSON和你如何做輸出(這是意想不到的)?似乎工作。 – Bergi

回答

0

你有什麼沒有使很多的意義。你確定你不想要一個對象數組嗎?

var array = new Array(); 

function addBatch() { 
    // Gets data. Returns an array of objects in format [{name: "", value: ""}, ...] 
    var data = $.toJSON($('#risk').serializeArray()); 

    // Extend the `array` with new objects. 
    array.concat(data); 
} 

// function that convert array into json: 
function saveBatch() { 
    // Convert the array of objects to JSON string. 
    var jsonData = JSON.stringify(array); 
    console.log(jsonData); 
}