[英]Constructing an array from JSON
我正在使用JSON
$.getJSON("http://localhost:8080/test_json/", function(data) {
});
輸出看起來像這樣。
{"items":[{"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7}]}
修剪后
data = JSON.stringify(data);
data = data.substring(9);
data = data.substring(0, data.length - 1);
data = data.replace(/[{}]/g, " ");
console.log(data);
看起來像這樣
["1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7]
我想“解構”(?)以便刪除所有鍵,以便僅保留值。
[1 ,2 ,3 , 4 , 5 , 6 ,7]
我將使用它來繪制圖表。 因此,例如,這可能是我要傳遞到圖表庫的數據。
請不要像這樣開始“修剪”您的JSON。 只需解析它並像處理其他任何對象一樣對其進行處理。
var json = '{"items":[{"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7}]}';
將您的JSON解析為JS對象(我注意到您正在使用jQuery來獲取數據,因此該數據已經被解析,因此可以跳過此步驟):
var obj = JSON.parse(json);
抓住items
的第一個元素(一個數組),它是另一個對象:
var items = obj.items[0];
使用Object.keys()
抓住項目鍵,並使用該數組通過map
返回值。
var vals = Object.keys(items).map(function (el) {
return items[el];
}); // [ 1, 2, 3, 4, 5, 6, 7 ]
編輯
現在,您有了一些新數據:
var json = '{"items":[{"sum":188700.75},{"sum":633927.98},{"sum":7000},{"sum":65169.26},{"sum":17114.67},{"sum":252340.96},{"sum":1073246.73}]}'
以下JS將從每個對象中獲取sum
的值:
var items = obj.items;
var vals = items.map(function (el) {
return el.sum;
});
輸出量
[ 188700.75, 633927.98, 7000, 65169.26, 17114.67, 252340.96, 1073246.73 ]
您有json數據,為什么需要對其進行字符串化?
var input = data.items[0]
var arr = $.map(input,function(v){
return v;
});
與您告訴您的方法不同。
您不需要修剪數據。
var json = JSON.parse(data);
var items = json.items[0];
而且您不需要刪除鍵,您可以將值發送到另一個數組中。
var listOfItems = [];
for(var key in items)
listOfItems.push(items[key]);
首先,如果要提取值,可以通過如下方式訪問它:
var obj = data.items[0];
您的變量obj
將如下所示:
{"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7}
然后,我猜您將不得不對該對象進行迭代以使其成為數組:
var arr = [];
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
arr.push(obj[key]);
}
}
變量arr
將包含您想要的元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.