将JSON对象转换成Javascript数组

我有一个这样的JSON对象作为服务器响应回来:

{"0":"1","1":"2","2":"3","3":"4"} 

我想要将其转换为JavaScript数组,如:

 ["1","2","3","4"] 

有没有最好的方法来做到这一点? 无论我在读什么,人们都在使用循环使用复杂的逻辑。 那么有没有其他的方法来做到这一点?

实际上,jQuery的$.map非常简单

 var arr = $.map(obj, function(el) { return el }); 

小提琴

和没有jQuery一样简单,将键转换为数组,然后用Array.map映射返回值

 var arr = Object.keys(obj).map(function(k) { return obj[k] }); 

小提琴

这是假设它已经被parsing为一个JavaScript对象,而实际上并不是JSON,这是一种string格式,在这种情况下,通过JSON.parse运行也是必要的。

在ES2015中有Object.values的救援,这使得这很轻松

 var arr = Object.values(obj); 
 var json = '{"0":"1","1":"2","2":"3","3":"4"}'; var parsed = JSON.parse(json); var arr = []; for(var x in parsed){ arr.push(parsed[x]); } 

希望这是你以后的!

没有什么像“JSON对象” – JSON是一个序列化符号。

如果你想把你的JavaScript对象转换成一个javascript数组 ,你可以编写你自己的循环(这不会那么复杂!),或者你依赖于underscore.js _.toArray()方法:

 var obj = {"0":"1","1":"2","2":"3","3":"4"}; var yourArray = _(obj).toArray(); 

你只是这样做

 var data = { "0": "1", "1": "2", "2": "3", "3": "4" }; var arr = []; for (var prop in data) { arr.push(data[prop]); } console.log(arr); 

DEMO

这里没什么难的。 循环你的对象元素并将它们分配给数组

 var obj = {"0":"1","1":"2","2":"3","3":"4"}; var arr = []; for (elem in obj) { arr.push(obj[elem]); } 

http://jsfiddle.net/Qq2aM/

 var JsonObj= {"0":"1","1":"2","2":"3","3":"4"}; var array = []; for(var i in JsonObj) { if(JsonObj.hasOwnProperty(i) && !isNaN(+i)) { array[+i] = JsonObj[i]; } } 

DEMO

尝试这个:

 var newArr = []; $.each(JSONObject.results.bindings, function(i, obj) { newArr.push([obj.value]); }); 

使用原始的JavaScript,假设你有:

 var j = {0: "1", 1: "2", 2: "3", 3: "4"}; 

你可以得到的价值:

 Object.keys(j).map(function(_) { return j[_]; }) 

输出:

 ["1", "2", "3", "4"] 

不知道我在这里失踪,只是简单地尝试下面的代码做的工作。 我在这里错过了什么?

https://jsfiddle.net/vatsalpande/w3ew5bhq/

 $(document).ready(function(){ var json = { "code" :"1", "data" : { "0" : {"id":"1","score":"44"}, "1" : {"id":"1","score":"44"} } }; createUpdatedJson(); function createUpdatedJson(){ var updatedJson = json; updatedJson.data = [updatedJson.data]; $('#jsondata').html(JSON.stringify(updatedJson)); console.log(JSON.stringify(updatedJson)); } }) 

假设你有一个像下面这样的值

 var obj = {"0":"1","1":"2","2":"3","3":"4"}; 

然后你可以把它变成一个JavaScript数组使用以下

 var arr = []; json = JSON.stringify(eval('(' + obj + ')')); //convert to json string arr = $.parseJSON(json); //convert to javascript array 

这适用于将json转换为多个diminsional javascript数组。

除了我在这里提到的方法,使用php json编码的string处理这个页面上的其他方法似乎对我完全不起作用。

这里是一个如何获得一个对象数组然后对数组进行sorting的例子。

  function osort(obj) { // map the object to an array [key, obj[key]] return Object.keys(obj).map(function(key) { return [key, obj[key]] }).sort( function (keya, keyb) { // sort(from largest to smallest) return keyb[1] - keya[1]; } ); } 

这是最好的解决scheme。 我想是这样。

 Object.keys(obj).map(function(k){return {key: k, value: obj[k]}}) 
 var obj= {"0":"1", "1":"2", "2":"3", "3":"4"}; var arr = []; var keys = window.jQuery.map(obj, function(value, key) { arr.splice(key, 0, value); console.log(arr); });