JavaScript 將 JSON Object 轉為 Arrary
情境:
為了可以用 陣列(Array) 的方法對 JSON 的物件進行操作,我們必須先把 JSON 物件,轉換為 陣列(Array)
說明:
拿下面 JSON object 為例:
var jsonObj = {"0":"1","1":"2","2":"3","3":"4"};
如果我想取得這 Object 的 length:
console.log(jsonObj.length);
回傳的結果會是:
undefined
這是因為 length,是 陣列(Array) 底下的屬性,也就是說如果我們要使用 陣列(Array) 的方法來對 JSON 的物件進行操作,就必須需要把 JSON 物件轉換成 陣列(Array)
JSON to Array :
使用 原生 JavaScript 的方法作轉換 參考文章
var obj = Object.keys(jsonObj).map(function(_) { return jsonObj[_]; });
console.log(jsonObj)
回傳結果:
(4) ["1", "2", "3", "4"]
此時你在使用 length,的屬性就可以得到我們要的結果
console.log(jsonObj.length);
回傳的結果:
4
之後你可以再使用 JSON.parse() 再將 陣列(Array) 轉為 JSON 回傳
Property & Method:
Object.keys(obj).map(function(_) { return obj[_]; });