簡體   English   中英

從JSON構造數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM