2014-07-03 46 views
0

能否請你讓我知道我可以從一個JSON響應這樣裝載的規則陣列:問題上解析JSON到一個常規的JavaScript數組

{"project":"8","powerline":"188.396496","road":"7.876766","cost":"69885005.45"} 

var cars = [8, 188.396496, 7.876766, 69885005.45]; 

我已經嘗試過像這樣:

req.done(function(data) { 
var cars = JSON.parse(data); 
}); 

但它不是做這項工作。謝謝

+0

這是什麼請求? – kamesh

+0

嗨kamesh它是jQuery json對象 –

+0

我相信OP已經忘記添加node.js作爲標籤 –

回答

2

你可以簡單地運行一個for..in這樣的循環。並繼續將這些值推入一個新的數組中。

var obj = { 
    "project" : "8", 
    "powerline" : "188.396496", 
    "road" : "7.876766", 
    "cost" : "69885005.45" 
} 

var arr = []; 
for (var key in obj) { 
    var val = parseFloat("0" + obj[key]); 
    arr.push(val) 
} 
+0

嗨rajub,感謝您的答覆,但正如我已經提到我從Ajax請求獲取JSON,所以我如何使用你的進場? –

+0

你想從Ajax獲取數組而不是JSON?那麼除了服務器端 – rajub

+0

之外,它還會將字符串加載到數組中。有沒有什麼辦法強制他們填充爲數字8而不是「8」 –

0

你可以操縱JSON對象數組,請嘗試這種方式

req.done(function(data) { 
var cars = $.map(JSON.parse(data), function(value, index){ 
    return i; 
}); 
console.log(cars); 
}); 
+0

嗨Girish,感謝您的答覆,但這是不能正常工作, –

0

那是因爲你,當你調用JSON.parse獲取的對象。你可以運行下面的命令來獲取沒有密鑰的值:

req.done(function (data) { 
    var jsonData = JSON.parse(data), 
     cars = [] 

    for (var key in jsonData) { 
     cars.push(jsonData[key]) 
    } 
})